gpt4 book ai didi

mysql - Hibernate 双向或两个单向关系

转载 作者:行者123 更新时间:2023-11-29 00:13:17 25 4
gpt4 key购买 nike

我有两个实体 Users 和 Groups ,与多对多关联

一个用户属于多个组并且他知道它们(navigabilite_1)
一个组包含许多用户,他认识他们 (navigabilite_2)

我想当我删除一个用户时只有用户和关系(在连接表中)被删除而不是组并且删除组的相同不应该只影响用户组和关系

我应该使用双向或两个单向的什么样的关联,我应该把级联删除放在什么地方?

最佳答案

你应该使用双向关联,你不应该使用任何级联,因为级联也会删除关联另一端的实体。

假设 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);

关于mysql - Hibernate 双向或两个单向关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com