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 ListcollectionName;
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.
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