Hi!
Ich habe folgendes Problem:
Ich erzeuge zur Speicherung von Sprach-Templates div. Datenstrukturen (Sentence, enthält Nouns, Noun hat Adjectives etc.)
Jetzt speichere ich einen solchen Sentence in der DB - und zwar DB4O.
Das klappt auch soweit ganz gut - der Haken kommt beim rausnehmen und verarbeiten...
Ich ersetze Teile meiner Strukturen durch Nutzereingaben. Dummerweise verändert sich die Struktur dann auch in der DB.
Konkret mache ich folgendes:
Ich nehme mir also so ein Template und verarbeite es dann:
Jetzt brauche ich das selbe Template später nochmal (allerdings möchte ich dann anderen Inhalt reintun. Dieser Versuch offenbart aber ein essentielles Problem. Obiges Sysout liefert nämlich beim 2. Mal "BliBlaBlub" - also wurde das in der DB liegende Objekt "mitverändert" bzw. anders gesagt - es gibt nur ein Objekt...
Das ist leider für mich ein essentielles Problem und ich wäre für Lösungsideen dankbar.
Von einem CopyConstructor würde ich gerne absehen (wenn irgendmöglich), nämlich jetzt durch diese ganzen Strukturen durchzusteppen und da überall alles ordentlich zu kopieren wird sicherlich kein Spaß...
Daher hoffe ich, dass es da einen anderen Weg gibt?
Liebe Grüße,
fkerber
Ich habe folgendes Problem:
Ich erzeuge zur Speicherung von Sprach-Templates div. Datenstrukturen (Sentence, enthält Nouns, Noun hat Adjectives etc.)
Jetzt speichere ich einen solchen Sentence in der DB - und zwar DB4O.
Das klappt auch soweit ganz gut - der Haken kommt beim rausnehmen und verarbeiten...
Ich ersetze Teile meiner Strukturen durch Nutzereingaben. Dummerweise verändert sich die Struktur dann auch in der DB.
Konkret mache ich folgendes:
Java:
private Template getTemplateByName(String templateName) {
Query query = db.query();
query.constrain(Template.class);
query.descend("name").constrain(templateName).equal();
ObjectSet<Template> result = query.execute();
if (result.hasNext()) {
Template x = result.next();
System.out.println(x.getVariables().get(0).getWord()); // zur Visualisierung
return x;
} else {
return null;
}
}
Ich nehme mir also so ein Template und verarbeite es dann:
Java:
var.getWord().setVariable("BliBlaBlub");
Jetzt brauche ich das selbe Template später nochmal (allerdings möchte ich dann anderen Inhalt reintun. Dieser Versuch offenbart aber ein essentielles Problem. Obiges Sysout liefert nämlich beim 2. Mal "BliBlaBlub" - also wurde das in der DB liegende Objekt "mitverändert" bzw. anders gesagt - es gibt nur ein Objekt...
Das ist leider für mich ein essentielles Problem und ich wäre für Lösungsideen dankbar.
Von einem CopyConstructor würde ich gerne absehen (wenn irgendmöglich), nämlich jetzt durch diese ganzen Strukturen durchzusteppen und da überall alles ordentlich zu kopieren wird sicherlich kein Spaß...
Daher hoffe ich, dass es da einen anderen Weg gibt?
Liebe Grüße,
fkerber