如何在JPA中删除具有ManyToMany关系的实体(以及相应的联接表行)?

如何在JPA中删除具有ManyToMany关系的实体(以及相应的联接表行)?,第1张

如何在JPA中删除具有ManyToMany关系的实体(以及相应的联接表行)?
  • 关系的所有权取决于将“ mappedBy”属性放置在注释中的位置。您放置“ mappedBy”的实体不是所有者。双方都没有机会成为所有者。如果您没有“删除用户”用例,则可以简单地将所有权移至
    Group
    实体,因为当前
    User
    是所有者。
  • 另一方面,您没有问过这个问题,但是有一件事值得知道。的
    groups
    users
    不与彼此组合。我的意思是,从Group1.users中删除User1实例后,User1.groups集合不会自动更改(这对我来说很令人惊讶),
  • 总而言之,我建议您确定谁是所有者。假设
    User
    是所有者。然后,在删除用户时,关系用户组将自动更新。但是,在删除组时,您必须像这样删除自己的关系:

entityManager.remove(group)for (User user : group.users) {     user.groups.remove(group);}...// then merge() and flush()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5163245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存