Heim >Java >javaLernprogramm >Wie behebe ich die PersistentObjectException von Hibernate mit getrennten Entitäten?
PersistentObjectException im Ruhezustand mit getrennten Entitäten korrigieren
Beim Umgang mit JPA-persistenten Objektmodellen können bestimmte Vorgänge zur PersistentObjectException führen , insbesondere beim Beziehungsmanagement. Im Fall einer Viele-zu-Eins-Beziehung zwischen einem Konto und mehreren Transaktionen kann beispielsweise ein Versuch, eine Transaktion mit einem bereits persistenten Konto beizubehalten, diese Ausnahme auslösen.
Es ist entscheidend, das zugrunde liegende Problem zu verstehen. Wenn Sie eine Transaktion erstellen und ein vorhandenes Konto angeben, gilt das Konto als vom Entitätsmanager getrennt. Dies liegt daran, dass Sie das Konto aus einem anderen Kontext abrufen als dem, in dem die Transaktion beibehalten wird.
Um dieses Problem zu beheben, passen Sie den Kaskadentyp in der Annotation der Transaktion auf CascadeType.MERGE. Dadurch wird sichergestellt, dass bei der Beibehaltung der Transaktion das zugehörige Konto in den aktuellen Entity-Manager-Kontext zusammengeführt wird, wodurch das Trennungsproblem gelöst wird.
Hier ist ein aktualisierter Codeausschnitt:@Entity public class Transaction { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @ManyToOne(cascade = {CascadeType.MERGE}, fetch = FetchType.EAGER) private Account fromAccount; }Durch die Implementierung Durch diese Änderungen können Sie Transaktionen mit bereits persistierten Konten erfolgreich persistieren und so die PersistentObjectException beseitigen.
Das obige ist der detaillierte Inhalt vonWie behebe ich die PersistentObjectException von Hibernate mit getrennten Entitäten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!