„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie kann der Hibernate-Fehler „Object References Unsaved Transient Instance“ behoben werden?

Wie kann der Hibernate-Fehler „Object References Unsaved Transient Instance“ behoben werden?

Veröffentlicht am 23.12.2024
Durchsuche:311

How to Resolve Hibernate's

Hibernate-Fehler „Object References Unsaved Transient Instance“ wird behoben

Beim Versuch, ein Objekt mit Hibernate zu speichern, kann der folgende Fehler auftreten:

object references an unsaved transient instance - save the transient instance before flushing

Den Fehler verstehen

Dieser Fehler weist darauf hin, dass Ihre Entität eine Sammlung enthält, die ein oder mehrere Elemente enthält, die nicht in der Datenbank vorhanden sind. Hibernate erfordert, dass alle Entitäten, auf die von anderen Entitäten verwiesen wird, entweder in der Datenbank gespeichert (permanent) oder als transient markiert werden.

Auflösung

Die Lösung für diesen Fehler besteht darin, Folgendes anzugeben die Kaskadenoption für Ihre Sammlungszuordnung. Sie können dies entweder mithilfe von XML oder Annotationen tun:

XML:


    ...

Annotationen:

@OneToMany(cascade = CascadeType.ALL)
private List collectionName;

Explanation

Durch Angabe der Option cascade="all" oder CascadeType.ALL weisen Sie Hibernate an, alle Entitäten in der Sammlung zu speichern in die Datenbank übertragen, wenn die übergeordnete Entität gespeichert wird. Dadurch wird sichergestellt, dass alle referenzierten Entitäten in der Datenbank bestehen bleiben und der Fehler behoben wird.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3