我怀疑我可以使用哪一个单向/双向关联。建议 Hibernate 使用双向关联Best Practies。但是有些人回答使用单向关联。
协会和收藏的最佳实践是什么?
没有绝对的最佳实践。当您想要或需要双向关联时使用双向关联,当您想要单向关联时使用单向关联。
有些关联不应该是双向的。例如,如果地址可以是用户、消费者、供应商、联系人或其他任何人的地址,那么在地址中引用这些实体中的每一个(除一个之外都为空)不是明智的选择。
除此之外,当两个实体紧密耦合时,我通常将关联设为双向以简化查询的开发和编写(如 Hibernate 文档所述)。
我也同意您链接到的 SO 答案:当您有一对多或多对多关联时要小心。但是这个关联,如果它不是所有者方,也可以保持对实体完全私有(因此永远不会被加载),只是为了帮助编写查询,但禁止初始化非常大的集合。
为了让 JPA 没有问题,您“只”需要了解并考虑在幕后发生的事情。开发时,打开 SQL 日志记录并查看正在执行的查询。