2017-08-05 147 views
0

我錯過了有關JPA級聯刪除的內容 - 我真的很感激這裏的指針。JPA Spring數據級聯刪除組合多對多關係

我有一個模型,簡化了這一問題,三種類型一的:

  • 用戶設置自己的一切
  • 用戶可以有許多組
  • 用戶可以有很多話題
  • 一主題可以添加到許多組。

  • 如果用戶被刪除,所有團體和主題都將被刪除

  • 如果一個組被刪除,主題是從該組刪除,但如果主題被刪除,不會刪除
  • ,它從組中刪除和用戶,但用戶和組仍然

所以我只是試圖不同的級聯每春季的數據文檔,並沒有得到我描述的結果。我的瀑布錯了 - 目前,如果我刪除了一個主題,該組和用戶被刪除,所以索引是雙向的,這不是我想要的。

用戶:

@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將級聯刪除到父級。