Heim >Java >javaLernprogramm >Wie kann der Hibernate-Fehler „Object References Unsaved Transient Instance' behoben werden?

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

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 01:36:13786Durchsuche

How to Resolve Hibernate's

Hibernate-Fehler „Object References Unsaved Transient Instance“ beheben

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 zeigt an, dass Ihre Entität eine Sammlung enthält, die ein oder mehrere Elemente enthält, die nicht in der Datenbank vorhanden sind. Der Ruhezustand erfordert, dass alle Entitäten, auf die andere Entitäten verweisen, entweder in der Datenbank gespeichert (permanent) oder als vorübergehend markiert werden.

Lö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 Anmerkungen tun:

XML:

<collection name="collectionName" cascade="all">
    ...
</collection>

Anmerkungen:

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

Erklärung

Durch die Angabe von cascade="all" bzw Mit der Option CascadeType.ALL weisen Sie Hibernate an, beim Speichern der übergeordneten Entität alle Entitäten in der Sammlung in der Datenbank zu speichern. Dadurch wird sichergestellt, dass alle referenzierten Entitäten in der Datenbank bestehen bleiben und der Fehler behoben wird.

Das obige ist der detaillierte Inhalt vonWie kann der Hibernate-Fehler „Object References Unsaved Transient Instance' behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn