CascadeType.ALL を頻繁に使用している場合は、次の設計に簡単に到達できます。
@Entity
public class Group {
...
}
@Entity
public class Person {
@ManyToOne(cascade = CascadeType.ALL)
Group group;
...
}
そのグループの1人が削除される場合、グループ全体を削除するようにHibernateに指示します...グループに他の人がいる場合、これは外部キー制約のために失敗します「親行を削除または更新できません:外部キー制約が失敗します」 .
私は今使っています:
@ManyToOne(cascade = {CascadeType.PERSIST,CascadeType.REFRESH, CascadeType.MERGE, CascadeType.DETACH})
より短い解決策はありますか?