I have this use case:
- I have Users.
- I have Groups.
- There is a N:N relation between Users and Groups.
- I can not delete Users.
- If I delete a Group, Users in that Group should not be deleted.
Users side:
@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;
Group side:
@ManyToMany(mappedBy = "groups", cascade = CascadeType.ALL)
private List<UserJPA> returnsList;
If I delete a Group from User's group list, the group gets deleted from User's list, it gets deleted from the join table, and it doesn't get deleted from the Group table. This is the desire behavior.
But, if I delete an entire Group, what happens is, all the references in the join table get deleted, BUT ALSO the Users get deleted as well!! This can not happen.
I'm using 4.3.5.Final and Spring 4.3.0.RELEASE.