Hi,
Hibernate bringt mich mit folgendem zur Verzweiflung, vielleicht weiß jemand Rat:
Ich möchte die Attribute eines bestimmten Objekts updaten, Hibernate macht stattdessen jedoch einen Insert (gleiche Attribute, neuen PK). Zuerst dachte ich, dass ich vielleicht unsauber mit dem (detached) Objekt umgegangen bin, doch nicht mal das folgende funktioniert:
mit merge() statt update() hab ichs auch versucht, selbes Ergebnis.
(Anmerkung zur Struktur: Die gepostete Methode wird in einem Controlller-Objekt aufgerufen, die (u.a.) den Befund bef als Klassenvariable hält und das Switchen der Panels in meinem Frame übernimmt, sowie die Hibernate-Operationen durchführt. Originellerweise tritt der beschriebene Fehler beim Update einer anderen Entity "Behandlung" in derselben Klasse nicht auf, obwohl ich das Update dort vom Prinzip her gleich durchführe)
Hibernate bringt mich mit folgendem zur Verzweiflung, vielleicht weiß jemand Rat:
Ich möchte die Attribute eines bestimmten Objekts updaten, Hibernate macht stattdessen jedoch einen Insert (gleiche Attribute, neuen PK). Zuerst dachte ich, dass ich vielleicht unsauber mit dem (detached) Objekt umgegangen bin, doch nicht mal das folgende funktioniert:
Java:
try {
DAOFactory.getBefundDAO().beginTransaction();
Befund tmpbef = DAOFactory.getBefundDAO().findById(bef.getId());
tmpbef.setTherapieziel(therapieziel);
tmpbef.setAnamnese(anamnese);
tmpbef.setTherapieempfehlung(therapieempfehlung);
tmpbef.setLastchange(new Date());
DAOFactory.getBefundDAO().update(tmpbef);
DAOFactory.getBefundDAO().commit();
bef=tmpbef;
}
catch(HibernateException e) {
//exception handling
}
mit merge() statt update() hab ichs auch versucht, selbes Ergebnis.
(Anmerkung zur Struktur: Die gepostete Methode wird in einem Controlller-Objekt aufgerufen, die (u.a.) den Befund bef als Klassenvariable hält und das Switchen der Panels in meinem Frame übernimmt, sowie die Hibernate-Operationen durchführt. Originellerweise tritt der beschriebene Fehler beim Update einer anderen Entity "Behandlung" in derselben Klasse nicht auf, obwohl ich das Update dort vom Prinzip her gleich durchführe)