我正在使用JPA 2.0和hibernate。我有一个User类和一个Group类,如下所示:
public class User implements Serializable {
@Id
@Column(name="USER_ID")
private String userId;
@ManyToMany
@JoinTable(name = "USER_GROUP",
joinColumns = {
@JoinColumn(name = "GROUP_ID")
},
inverseJoinColumns = {
@JoinColumn(name = "USER_ID")
}
)
private Set<Group> groupList;
//get set methods
}
public class Group
{
@Id
@Column(name="GROUP_ID")
private String groupId;
@ManyToMany(mappedBy="groupList")
private Set<User> memberList;
//get set methods
}
然后,我创建一个用户和组,然后将该用户分配给该组。
我想要的是,当我删除组时,组将被删除(当然),并且组拥有的所有用户-组关系将自动从USER_GROUP连接表中删除,但用户本身不会从用户表中删除。
使用上面的代码,当我删除一个组时,只有GROUP表中的行会被删除,而用户在USER_GROUP join表中仍然有一个到被删除组的条目。
如果我将cascade放在User类中,如下所示:
@ManyToMany(cascade=CascadeType.ALL)
@JoinTable(name = "USER_GROUP",
joinColumns =
{
@JoinColumn(name = "GROUP_ID")
},
inverseJoinColumns =
{
@JoinColumn(name = "USER_ID")
})
private Set<Group> groupList;
当我删除群组时,用户也将被删除!
有什么方法可以实现我想要的吗?
https://stackoverflow.com/questions/4935095
复制相似问题