我有两个实体用户和组,与多对多
相关联用户属于许多群组并且他们知道(navigabilite_1)
一个组包含许多用户,他知道它们(navigabilite_2)
我想在删除仅用户的用户时,关系(在连接表中)被删除而不是组,删除组的相同内容不应仅影响用户组和关系
我应该使用双向或两个单向的哪种关联,我应该在哪里删除级联?
答案 0 :(得分:1)
您应该使用双向关联,并且不应使用任何级联,因为级联也会删除关联另一侧的实体。
假设User.groups
是关联的所有者方,则使用
for (User user : group.getUsers()) {
user.getGroups().remove(group);
}
// optional:
group.getUsers().clear();
session.delete(group);
删除用户将使用
完成// optional:
for (Group group : user.getGroups()) {
group.getUsers().remove(user);
}
user.getGroups().clear();
session.delete(user);