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 erschwert. 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 List<Bikes> bikes;
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)
By Wenn Sie orphanRemoval auf true setzen, löscht JPA automatisch verwaiste untergeordnete Datensätze, wenn die übergeordnete Entität entfernt wird.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit verwaisten Knoten in JPA mit CascadeType.ALL um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!