Hallo zusammen,
ich bin neu bei Hibernate gelandet und habe eine, in meinen Augen, ganz blöde Frage.
Ich verwende eine Client-Server Anwendung, die mittel http kommunizieren.
Hierbei müsse für die Übertragung alle Objekte serialisiert werden.
Wenn nun der Client ein neues Objekt anlegt wird die hibernateID auf 0 gesetzt (nicht null). Danach serialisiert und zum Server geschickt.
Der Server ruft dann saveOrUpdate() auf um das erhaltene Objekt zu speichern.
Funktioniert alles prima...
Wenn jetzt der Client das erzeugte Objekt nochmal speichert, wird ein weiteres Tupel auf der Datenbank angelegt!
Der Server hat hierbei das vom Inhalt gleiche Objekt erhalten, allerdings ist die hibernateID (PK) immer noch auf 0.
Nun meine Frage, ich hab gelesen dass Hibernate anhand der Werte entscheidet ob ein Objekt neu ist, einzige Ausnahme sind hierbei die Collections.
Oder trifft das nur zu wenn der PK nicht auf 0 (== unsaved) steht.
Wäre es ratsam nach dem Speichern das Objekt als return value zum Client zu übertragen?
Er hätte somit die von Hibernate erzeugten ID's dabei. ??
Vielen Vielen dank für alle Hilfen
Hoschi
|