JPA / Hibernate:收集“所有者”的简明定义和最佳实践

时间:2012-03-02 18:46:00

标签: hibernate jpa

我正在寻找“所有者”的简单定义。 hibernate文档一直在讨论“所有者”,但我找不到所有者的定义。也就是说,我希望能够回答以下几类问题:

  • 在概念上/逻辑上,作为所有者意味着什么?
  • 这是否符合现实生活中的任何概念?
  • 在多对一或一对多关系中,为什么你会选择一端或另一端作为所有者?

1 个答案:

答案 0 :(得分:3)

所有者是没有mappedBy属性的一方。

这是Hibernate / JPA跟踪的关联方,以查看两个实体之间是否存在关联。如果您设置/修改所有者方,则更改将反映在数据库中。如果您设置/修改另一侧,则JPA / Hibernate不关心。

它与现实生活中的任何概念都不相符。

在双向OneToMany / ManyToOne关联中,JPA规范中唯一可以作为所有者的一方是多方。它也是最自然的选择,因为它是映射到持有外键的表的许多方面,该外键实现了关联。 Hibernate允许将另一方定义为所有者,但映射很复杂,不建议使用。