JPA nabízí možnost kaskádovat operace (sloučit, přetrvávat, aktualizovat, odebrat) do přidružených entit. Logika je v JPA a nevyužívá databázové kaskády.
@OneToMany(cascade=CascadeType.REMOVE)
Neexistuje žádný způsob, který by vyhovoval standardu JPA, jak dělat kaskády s databázovými kaskádami. Pokud jsou preferovány takové kaskády, musíme se vrátit ke specifické konstrukci Hibernate:@ OnDelete
. Funguje s @OneToMany
alespoň, ale v minulosti bývaly nějaké problémy s @OneToOne
a @OnDelete
.
@OnDelete(action = OnDeleteAction.CASCADE)
Uvědomte si, že přidání této anotace k existujícímu omezení ji neaktualizuje. Pro správnou aktualizaci schématu jej možná budete muset nejprve ručně upustit.