0

我正在阅读“Java Persistance with Hibernate”一书,我遇到了使用连接表的一对二的例子(第二版,第 230 页)。但我仍然无法理解这种方法的优点。

你能给我解释一下吗?它是可选的一对一关联吗?在这种情况下。为什么我不能在其中一个关联表中简单地使用可为空的外键?

4

1 回答 1

3

在 OneToMany 关系中使用 JoinTable 是可选的。我没有读过这本书,但我认为在 OneToOne 关系中使用 JoinTable 至少有两个可能的优势:

  1. 易于迁移到 OneToMany 或 ManyToMany:假设您有一个实体 Person OneToOne Address,多年来一切正常。但是,现在您有一个新的业务规则,即 Person ManyToMany Address,因此您必须编写脚本来迁移数据并更改表结构。如果你有一个 JoinTable,你只需要改变关系。

  2. 您可以从 JoinTable 而不是 Entity 表中删除记录:在某些情况下,这可能是一个优势。再次使用我们的 Person OneToOne Address,如果您想删除 Person 的 Address,您可以将其从关系中删除。

干杯,

于 2013-08-04T14:19:14.367 回答