JPA bietet die Möglichkeit zur Kaskade Operationen (Zusammenführen, Beibehalten, Aktualisieren, Entfernen) für zugeordnete Entitäten. Die Logik ist in JPA und verwendet keine Datenbankkaskaden.
@OneToMany(cascade=CascadeType.REMOVE)
Es gibt keine mit dem JPA-Standard kompatible Möglichkeit, Kaskaden mit Datenbankkaskaden durchzuführen. Wenn solche Kaskaden bevorzugt werden, müssen wir auf ein Hibernate-spezifisches Konstrukt zurückgreifen:@ Beim Löschen
. Es funktioniert mit @OneToMany
zumindest, aber in der Vergangenheit gab es einige Probleme mit @OneToOne
und @OnDelete
.
@OnDelete(action = OnDeleteAction.CASCADE)
Beachten Sie, dass das Hinzufügen dieser Anmerkung zu einer vorhandenen Einschränkung diese nicht aktualisiert. Möglicherweise müssen Sie es zuerst manuell löschen, um das Schema ordnungsgemäß zu aktualisieren.