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 Solution (ohne Ruhezustand)
Wenn kein Ruhezustand vorhanden ist, löschen Sie untergeordnete Elemente explizit, bevor Sie den übergeordneten Datensatz entfernen:
JPA 2.0
JPA 2.0 führt das orphanRemoval-Attribut ein:
@OneToMany(mappedBy="foo", orphanRemoval=true)
Wenn Sie orphanRemoval auf „true“ setzen, löscht JPA automatisch verwaiste untergeordnete Datensätze, wenn die übergeordnete Entität dies tut entfernt.
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!