Hibernate一对一协会

时间:2012-08-22 05:46:27

标签: hibernate

Hibernate中的一对一关联可以通过以下方式之一建立。

  1. 两个类的属性都保存在相同的表
  2. 可以在具有相同主键的不同表中维护实体
  3. 可以在不同的表中维护实体,并将其中一个实体的密钥维护到另一个实体 (两个表之间的外键关系)
  4. 我想知道:

    • 它只依赖于数据库架构吗?
    • 这些方法有哪些优点和缺点? 特别是我想知道下面两个。

1 个答案:

答案 0 :(得分:0)

映射到同一个表(组件)的类很容易维护。您不再需要在不再使用数据时清理记录。永远不会有级联问题。它也比连接表更快。但是您无法查询该组件,因为它未被识别。

您还可以使用 join 将组件(或任何其他数量的属性)映射到另一个表。可能有技术原因这样做,并且从应用程序的角度来看没有区别。连接也是由hibernate使用相同的主键实现的。

使用一对一关系时,您可以链接独立实体。两者都可以查询。其中一个没有自己的身份生成器,它从另一个获取id,这使得它依赖于另一个。在绘制一对一关系时,我总是遇到问题,因为它们很难理解,实际上很少见。

或者,您可以使用普通外键(多对一)映射实体。这通常更容易理解和维护。缺点是数据库中的另一个外键,可以通过使用一对一来避免。