Hallo Gemeinde!
Ich schlage mich jetzt seit einiger Zeit mit einem dauerhaften Problem herum, dass ich mir bis heute nicht erklären kann. Grundlegend gesehen habe ich ein komplexes Mapping mit verschiedenen one-to-many, einer many-to-many und vereinzelten one-to-one Beziehungen. Für die one-to-many and many-to-many habe ich jeweile ein Ende als inverse="true" definiert. Ausserdem haben alle meine persistierbaren Objekte eine Methode delete(), die ihre Instanz jeweils aus dem Set, in dem sie referenziert ist, entfernt, bevor auf der Session delete() aufgerufen wird. Doch trotz aller Anstrengungen habe ich sporadisch das Problem, dass ein session.get() mir mal eine aktuelle, mal eine veraltete Version des Objektes liefert. "veraltete" bezieht sich dabei auf die Inhalte der Sets als auch einfache String-Eigenschaften wie Namen. Selbst ein session.close() nach dem commit der Transaction behebt diesen Umstand nicht!
Aus irgendeinem mir nicht erklärlichen Grund scheint es zwei verschiedene Instanzen der gleichen Klasse zu geben, die mir beim session.get() geliefert werden. Wo kann die Ursache dafür liegen? Wo muss ich suchen?
Daniel
|