Hallo,
Ich haben eine Client/Server-Anwendung über RMI und speichere die Daten mit Db4o. Nun habe ich aber das Problem, dass z.B.
Db4o für die set()-Funktion (UPDATE) die Original-Referenz benötigt. Wenn ich den Befehl per RMI gebe, gehen dabei aber die Referenzen verloren.
Z.B:
1. Client fragt nach Benutzerdaten per RMI, erhält ein Objekt
2. Benutzerdaten werden geändert und sollen abgespeichert werden. Per RMI wird die objectContainer.set(...)-Funktion aufgerufen, es kommt aber nicht die unter 1. geladene Referenz an, sodass das Objekt als ein neues gespeichert wird, was 2 Objekte zur Folge hat.
Was kann ich da machen?
Ich weiß, dass ich auch die Client/Server-Funktionen von Db4o nutzen kann, aber das soll nicht geschehen. Die Kommunikation sollte schon über RMI laufen.
Ich habe auch schon sowas wie ne ID eingeführt, die beim GET oder INSERT gesetzt wird (Db4o-interne ID) und beim UPDATE und DELETE verwendet wird, aber das Problem besteht bei strukturierten Objekten, wo das dann schon nicht mehr so einfach anwendbar ist.
Gibt es per RMI die Möglichkeit, Referenzen, die vorher rausgegeben wurden, später wieder zu verwenden?
Gibt es bei Db4o die Möglichkeit, nicht die Referenzen zu vergleichen, sondern spezielle Felder der Klassen?
Ich haben eine Client/Server-Anwendung über RMI und speichere die Daten mit Db4o. Nun habe ich aber das Problem, dass z.B.
Db4o für die set()-Funktion (UPDATE) die Original-Referenz benötigt. Wenn ich den Befehl per RMI gebe, gehen dabei aber die Referenzen verloren.
Z.B:
1. Client fragt nach Benutzerdaten per RMI, erhält ein Objekt
2. Benutzerdaten werden geändert und sollen abgespeichert werden. Per RMI wird die objectContainer.set(...)-Funktion aufgerufen, es kommt aber nicht die unter 1. geladene Referenz an, sodass das Objekt als ein neues gespeichert wird, was 2 Objekte zur Folge hat.
Was kann ich da machen?
Ich weiß, dass ich auch die Client/Server-Funktionen von Db4o nutzen kann, aber das soll nicht geschehen. Die Kommunikation sollte schon über RMI laufen.
Ich habe auch schon sowas wie ne ID eingeführt, die beim GET oder INSERT gesetzt wird (Db4o-interne ID) und beim UPDATE und DELETE verwendet wird, aber das Problem besteht bei strukturierten Objekten, wo das dann schon nicht mehr so einfach anwendbar ist.
Gibt es per RMI die Möglichkeit, Referenzen, die vorher rausgegeben wurden, später wieder zu verwenden?
Gibt es bei Db4o die Möglichkeit, nicht die Referenzen zu vergleichen, sondern spezielle Felder der Klassen?