hibernate - 在 jpa/hibernate 中使用 uni/bi 关联的最佳实践

标签 hibernate jpa

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

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

最佳答案

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

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

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

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

为了让 JPA 不出现任何问题,您“只”需要理解并思考幕后发生的事情。开发时,打开 SQL 日志记录并查看正在执行的查询。

关于hibernate - 在 jpa/hibernate 中使用 uni/bi 关联的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691842/

相关文章:

hibernate 4.2 OneToMany EntityNotFoundException

java - 后端数据库异步更改时如何刷新JPA实体?

java - MappingException : Repeated column in mapping for entity: . .. 列: dept_id (应使用 insert ="false"update ="false"进行映射)

java - JPA 2.0 和 MySQL 不区分大小写的表名

java - 继承 JPA 和 Hibernate 问题

要插入数据库的 Java 注释

java - 如何在hibernate中使用注解实现映射?

hibernate - Grails:双向一对多导致无限递归(StackOverflow)

mysql - Hibernate 将 POST 请求中的 JSON 值错误地映射为 null

java - 如何在 Hibernate/JPA 中表示加权多对多关系?