我有這樣的使用情況:春天JPA多對多:刪除實體,刪除條目連接表,但不刪除對方
- 我的用戶。
- 我有團體。
- 用戶和組之間存在N:N關係。
- 我無法刪除用戶。
- 如果我刪除了一個組,那麼該組中的用戶不應該被刪除。
用戶側:
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(
name = "USERS_GROUPS",
joinColumns = @JoinColumn(name = "USER_ID", referencedColumnName = "ID") ,
inverseJoinColumns = @JoinColumn(name = "GROUP_ID", referencedColumnName = "ID"))
private List<GroupJPA> groups;
組方:
@ManyToMany(mappedBy = "groups", cascade = CascadeType.ALL)
private List<UserJPA> returnsList;
如果我從用戶組列表中刪除一個組,該組會從用戶的列表中刪除,它就會從加入刪除表,它不會從組表中刪除。這是慾望的行爲。
但是,如果我刪除整個組,連接表中的所有引用都會被刪除,但同時用戶也會被刪除!這不可能發生。
我正在使用4.3.5.Final和Spring 4.3.0.RELEASE。
這似乎是一個Hibernate/JPA問題;我不認爲這裏涉及到Spring。 – chrylis
可能可能會幫助你[級聯刪除](http://stackoverflow.com/questions/14585836/hibernate-many-to-many-cascading-delete)。 –