Hibernate - Problem mit Update/Insert

Status
Nicht offen für weitere Antworten.

Novanic

Bekanntes Mitglied
Hi Leute,

ich habe ein merkwürdiges Problem mit Hibernate.
Ich lade meine Objekte aus der Datenbank verändere einen Wert in einem Objekt und speichere das Objekt dann. Es wurde ein korrektes Update ausgeführt (kann man in der Datenbank beobachten). Nun ändere ich noch einmal am gleichen Objekt einen Wert und speichere das Objekt wieder. Bis zu dem Hibernate-"save" aufruf hat das Objekt auch noch die gleiche ID. Nach dem Hibernate-"save" Aufruf, hat das Objekt dann eine neue ID bekommen und Hibernate hat ein Update ausgeführt.

Hat jemand eine Idee wodran das liegen könnte? Wie kommt Hibernate denn plötzlich darauf eine neue ID vergeben zu müssen?

Danke schonmal im Voraus! 🙂

Gruß Nova
 
Oh, ich glaub ich habs schon gelöst. Ich hatte Session.save anstatt Session.saveOrUpdate verwendet. Daran wirds gelegen haben oder? 🙂

Danke. Gruß Nova
 
Hat jemand eine Idee wodran das liegen könnte? Wie kommt Hibernate denn plötzlich darauf eine neue ID vergeben zu müssen?
Wie hast du die equals() und hashCode() Methoden implementiert?
 
Die prüfen beide nur mit der ID. Ist doch auch richtig oder? Wenn andere Attribute geändert werden, handelt es sich ja trotzdem noch um den gleichen Datensatz...
Aber jetzt läuft das eigentlich auch so wie es soll... 🙂

Gruß Nova
 
Novanic hat gesagt.:
Die prüfen beide nur mit der ID. Ist doch auch richtig oder? Wenn andere Attribute geändert werden, handelt es sich ja trotzdem noch um den gleichen Datensatz...
Wenn die ID generiert wird, ist es besser, equals nicht (nur) über die ID zu bestimmen. Denn die ID wird erst beim ersten Speichern generiert. Das bedeutet, wenn Du zwei Objekte erzeugst, dann wären sie vor dem ersten Speichern laut equals gleich, was ja falsch wäre.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben