onetoone 单向和双向的区别

如题所述

我最近也看了这个,呵呵 我谈谈我的看法,你看能不能这样理解
比如说:Person和IdCard,在IdCard里面用mappedBy.
如果没有mappedBy,两边都加OneToOne的话,两边都以对方的主键作为外键。这样冗余大了点。
单向的时候,可以通过Person找到IdCard。双向的时候也可以通过IdCard找到Person.
加了mappedBy的话,只在Person里面加了外键。我们在IdCard类里有一个Person属性,当get或load一个IdCard的时候,hibernate看到了你在这个OneToOne里面加了一个mappedBy,所以会去Person类对应的表里去找一个外键与你要get的IdCard的主键相同的记录,放到IdCard的person属性中。这样也就能更具IdCard来找到Peorson了,也就实现了所谓的双向关联。
温馨提示:答案为网友推荐,仅供参考
相似回答