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!