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