JPA oferuje możliwość kaskadowego operacje (scalanie, utrwalanie, odświeżanie, usuwanie) do powiązanych jednostek. Logika jest w JPA i nie wykorzystuje kaskad bazy danych.
@OneToMany(cascade=CascadeType.REMOVE)
Nie ma zgodnego ze standardem JPA sposobu wykonywania kaskad z kaskadami bazy danych. Jeśli preferowane są takie kaskady, musimy wrócić do konstrukcji specyficznej dla Hibernate:@ Przy usuwaniu
. Działa z @OneToMany
przynajmniej, ale w przeszłości były pewne problemy z @OneToOne
i @OnDelete
.
@OnDelete(action = OnDeleteAction.CASCADE)
Należy pamiętać, że dodanie tej adnotacji do istniejącego ograniczenia nie spowoduje jego aktualizacji. Może być konieczne ręczne upuszczenie go, aby poprawnie zaktualizować schemat.