【问题标题】:best practice using uni/bi assoications in jpa/hibernate在 jpa/hibernate 中使用 uni/bi 关联的最佳实践
【发布时间】:2013-05-17 12:13:22
【问题描述】:

我怀疑我可以使用哪一个单向/双向关联。建议 Hibernate 使用双向关联Best Practies。但是有些人回答使用uni directional assoications

什么是协会和收藏的最佳实践?

【问题讨论】:

    标签: hibernate jpa


    【解决方案1】:

    没有绝对的最佳实践。当您想要或需要双向关联时使用双向关联,当您想要单向时使用单向关联。

    某些关联不应是双向的。例如,如果地址可以是用户、消费者、供应商、联系人或其他任何人的地址,那么在地址中引用这些实体中的每一个(除一个之外都为空)不是明智的选择。

    除此之外,当两个实体紧密耦合时,我通常会进行双向关联以简化查询的开发和编写(如 Hibernate 文档所述)。

    我也同意您链接到的 SO 答案:当您有一对多或多对多关联时要小心。但是这个关联,如果不是所有者方,也可以保持对实体完全私有(因此永远不会被加载),只是为了帮助编写查询,但禁止初始化非常大的集合。

    要让 JPA 没有问题,您“只”需要了解并考虑在幕后发生的事情。开发时,打开 SQL 日志记录并查看正在执行的查询。

    【讨论】:

    • " 也可以对实体保持完全私有(因此永远不会被加载),只是为了帮助编写查询,但禁止初始化非常大的集合“您的意思是使用私有 getter 吗? (题外话:很高兴看到你的答案 JB)
    • 是的,或者如果注释在字段上,则根本没有 getter(也没有 setter)。谢谢你的好话。
    • 谢谢。我错过了一个问题,为什么 eclipse/net beans 工具会生成双向关联?即使它们没有机会实现其他列表、集合。
    • 我从不使用 IDE 的自动生成工具。我自己生成代码。
    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多