OneToOne单向
实体类


映射文件


测试add

添加成功。

上述add:
如果person有对应的卡,再次添加卡的时候违背了unique的关系则会添加出错,
如果person没有对应的卡,则会添加成功。
OneToOne双向:
实体类:


映射文件:


测试add



此时会发出一条sql语句。
由于person端没有维护关系,hibernate会自动完成jion操纵,只发出一条sql语句

此时会发出三条sql语句。
因为维护关系的那一端会延迟加载。使用维护关系端取数据,在通过延迟加载取关联对象的时候,会同时 再去取原来的关联端,会发三条语句。
最佳实践是:
在one2one的时候,最好不要使用双向关联,
但是如果使用了双相关联,在取数据的时候,最好使用没有关联的那一方。
网友评论