0

我正在浏览hibernate文档,我得到了以下信息

UNI = 单向Bi = 双向

                     OneToOne      OneToMany         ManyToOne       ManyToMany 
Uni                  ok                UNUSUAL       MOST COMMON      
Uni with Join Tbl    UNUSUAL                        Common whn optional
Bi                   COMMON        <------ Most Common ------------>  
Bi with Join Tbl   Possible bt Unusual 

因此,如果我们有 Person 和 Phone Table 并且我希望只有一个人知道它的所有电话而不是相同的电话(他的所有者),为什么它不寻常?

或者为什么某些映射在其类别中更受欢迎(例如 Uni 、 Uni 与 Join 表、Bi、Bi 与 Join 表)

4

1 回答 1

0

这里的关键是确保您的映射尽可能与您的架构同步。

您将 Person 和 PhoneNumber 关联的示例作为单向 OneToMany 映射。不建议这样做,因为 PhoneNumber 表不可避免地具有 Person 表的外键。因此,PhoneNumber 非常了解它的所有者。但是,如果您使用单向映射,您会假装 PhoneNumber 不知道哪个 Person 拥有它。正如 Hibernate 注释文档中所述,没有什么可以阻止您这样做。

这种方法的缺点是当你添加一个PhoneNumber 和一个Person Hibernate 时必须插入两条记录,然后更新PhoneNumber 来设置外键。三种说法。但是,如果您使用双向链接,Hibernate 可以插入已设置外键的 PhoneNumber。只需要两个语句。

于 2012-10-17T12:58:56.203 回答