Hibernate Different Identifier Error in Many-to-Many Mapping
Der Fehler „Anderes Objekt mit demselben Identifikatorwert war bereits mit dem verknüpft „Sitzung“ tritt auf, wenn Hibernate versucht, ein Objekt zu speichern, das bereits in der Sitzung vorhanden ist. In diesem Fall scheint es sich um eine Viele-zu-Viele-Zuordnung zu handeln, die die Klassen UserBean, GroupBean und RoleBean umfasst.
Im bereitgestellten Code scheint das Problem aufzutreten, wenn die Methode saveOrUpdate innerhalb von verwendet wird Speicherfunktion. saveOrUpdate versucht, Objekte sowohl zu speichern als auch zu aktualisieren, und in diesem Fall trifft es auf ein doppeltes Rolebean#1-Objekt.
Der Fehler schlägt zwei mögliche Lösungen vor:
Die Ausnahmemeldung weist darauf hin, dass das Rolebean#1-Objekt zweimal in der Sitzung gespeichert wurde, was auftreten kann, wenn dasselbe Objekt mehreren Sammlungen zugewiesen wird (userbean.groups und userbean.roles), ohne jeweils als neue Instanz markiert zu werden.
Durch das Verständnis des Hibernate-Verhaltens und die Untersuchung des Codes, dem die Objekte zugewiesen sind, ist es möglich, das Problem zu beheben und sicherzustellen, dass dies der Fall ist Die Objekte werden innerhalb der Sitzung gespeichert und korrekt zugeordnet.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in der myHibernate-Many-to-Many-Zuordnung den Fehler „Anderes Objekt mit demselben Bezeichnerwert war bereits mit der Sitzung verknüpft'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!