2017-08-05 6 views
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; 
    
  • 答えて

    0

    のカスケード値を含まないようにされ、今では明白なようで、私が行方不明になった事、子オブジェクトそうすることで、私はJPAに親までのカスケード削除を指示していました。

    関連する問題