栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

单向和双向JPA和Hibernate关联之间有什么区别?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

单向和双向JPA和Hibernate关联之间有什么区别?

主要区别在于,双向关系提供了双向导航访问,因此您无需显式查询即可访问另一侧。此外,它还允许您在两个方向上应用级联选项。

请注意,导航访问并不总是很好,特别是对于“一对多”和“一对多”关系而言。想象一个

Group
包含数千个
User
的:

  • 您将如何访问它们?对于这么多

    User
    s,您通常需要应用一些过滤和/或分页,以便无论如何都要执行查询(除非您使用集合过滤,对我来说这看起来像是hack)。在这种情况下,某些开发人员可能倾向于在内存中应用过滤,这显然不利于性能。请注意,具有这种关系可以鼓励这类开发人员在不考虑性能影响的情况下使用它。

  • 您将如何向添加新

    User
    Group
    ?幸运的是,Hibernate在持久化关系时会考虑关系的所有权,因此只能设置
    User.group
    。但是,如果要使内存中的对象保持一致,则还需要添加
    User
    Group.users
    。但这会使Hibernate
    Group.users
    从数据库中获取所有元素!

因此,我不同意“最佳实践”中的建议。您需要仔细设计双向关系,同时考虑用例(是否需要双向导航?)和可能的性能影响。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368807.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号