0
JPAカスケード削除に関して何か不足しています - 私は本当にここにポインタをありがとうございます。JPA Springデータカスケードは、多対多のリレーションシップを組み合わせて削除します
私は三種類のこの質問のために単純化したモデル、持っている:
Aを持つことができることができますすべてのものを所有
- ユーザーをトピックは多くのグループに追加できます。ユーザーが削除された場合
は、すべてのグループとトピックは、グループが削除されている場合は、トピックをグループから削除されますが、トピックが削除された場合
- 削除されません
- を削除され、それはグループから削除されますユーザとグループが残っています
だから、私は春のデータのドキュメントごとに異なるカスケードを試していますが、私は説明している結果を得ていません。私のカスケードが間違っている - 現時点で私がトピックを削除した場合、グループとユーザーは削除されるので、インデックスは双方向であり、私が望むものではありません。
ユーザー:
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "owner")
private Set<Topic> topics;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "owner")
private Set<Group> groups;
グループ:
@ManyToMany(cascade = {CascadeType.PERSIST})
private Set<Topic> topics;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="user_id")
@OneToOne(mappedBy = "owner", cascade = CascadeType.ALL)
private User owner;
トピック
@ManyToMany(mappedBy = "topics")
private Set<EntityGroup> groups;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="user_id")
@OneToOne(mappedBy = "owner", cascade = CascadeType.ALL)
private User owner;