Verwaiste Knoten in JPA mit CascadeType.ALL
Trotz der Verwendung von JPAs CascadeType.ALL bleiben verwaiste Knoten in der Datenbank bestehen, was das Löschen verhindert. Um dieses Problem zu beheben, gibt es je nach Persistenzanbieter und JPA-Version mehrere Ansätze:
Hibernate-Konfiguration
Wenn Sie Hibernate verwenden, definieren Sie explizit die Annotation CascadeType.DELETE_ORPHAN in Verbindung mit JPA CascadeType.ALL:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private Listbikes;
JPA-Lösung (ohne Ruhezustand)
Wenn kein Ruhezustand vorhanden ist, löschen Sie explizit untergeordnete Elemente, bevor Sie den übergeordneten Datensatz entfernen:
JPA 2.0
JPA 2.0 führt das orphanRemoval-Attribut ein:
@OneToMany(mappedBy="foo", orphanRemoval=true)
Durch Setzen von orphanRemoval auf true löscht JPA automatisch verwaiste untergeordnete Datensätze, wenn die übergeordnete Entität entfernt 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