Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JPA + Hibernate:So definieren Sie eine Einschränkung mit ON DELETE CASCADE

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.