我正在阅读“Java Persistance with Hibernate”一书,我遇到了使用连接表的一对二的例子(第二版,第 230 页)。但我仍然无法理解这种方法的优点。
你能给我解释一下吗?它是可选的一对一关联吗?在这种情况下。为什么我不能在其中一个关联表中简单地使用可为空的外键?
我正在阅读“Java Persistance with Hibernate”一书,我遇到了使用连接表的一对二的例子(第二版,第 230 页)。但我仍然无法理解这种方法的优点。
你能给我解释一下吗?它是可选的一对一关联吗?在这种情况下。为什么我不能在其中一个关联表中简单地使用可为空的外键?
在 OneToMany 关系中使用 JoinTable 是可选的。我没有读过这本书,但我认为在 OneToOne 关系中使用 JoinTable 至少有两个可能的优势:
易于迁移到 OneToMany 或 ManyToMany:假设您有一个实体 Person OneToOne Address,多年来一切正常。但是,现在您有一个新的业务规则,即 Person ManyToMany Address,因此您必须编写脚本来迁移数据并更改表结构。如果你有一个 JoinTable,你只需要改变关系。
您可以从 JoinTable 而不是 Entity 表中删除记录:在某些情况下,这可能是一个优势。再次使用我们的 Person OneToOne Address,如果您想删除 Person 的 Address,您可以将其从关系中删除。
干杯,