0

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

  1. 两个类的属性都保存在同一张表中
  2. 可以在具有相同主键的不同表中维护实体。
  3. 实体可以在不同的表中维护,其中一个实体到另一个实体中维护一个键 (两个表之间的外键关系)

我想知道:

  • 它仅取决于数据库模式吗?
  • 这些方法的优点和缺点是什么?特别是我想知道以下两个。
4

1 回答 1

0

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

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

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

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

于 2012-08-22T06:04:40.130 回答