【发布时间】:2016-11-12 21:28:10
【问题描述】:
我有这个用例:
- 我有用户。
- 我有群组。
- 用户和组之间存在 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。
-
可能对你有帮助 cascading delete.