Hibernate中的inverse

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate中的inverse相关的知识,希望对你有一定的参考价值。

inverse

inverse的英文意思是反向的,倒转的

Hibernate配置文件中的inverse正是这一真实反映,inverse属性只在Hibernate配置文件的集合元素上(list,set,map,bag)存在,inverse有两个属性值,当inverse="false"时,表示控

制权在一对多关联关系的一方,当inverse="true"时,表示控制权在一对多关联关系的多方

当inverse=false时,Hibernate首先会逐条插入company,branch1,branch2,这个时候Hibernate并不会维护Company与Branch之间的一对多的关联关系,也就是说当插入branch1,branch2时,companyid的值是null,然后Hibernate会再多发出两条update语句,用于建立Company与Branch之间的一对多的关联关系。而当inverse=true时,Hibernate就只需要操作三条语句就可以建立起Company与Branch之间的一对多的关联关系,因为插入branch1和branch2的时候也为它们赋予了companyid的值。所以可以看出inverse为true或false,达到的结果一样,实现的过程却截然不同。出于执行效率的考虑,建议将inverse设置为true,即由多方来维护一对多的关联关系。

以上是关于Hibernate中的inverse的主要内容,如果未能解决你的问题,请参考以下文章

HIbernate——hibernate中的各种查询

hibernate中的查询方式都有哪些?

Hibernate-ORM:07.Hibernate中的参数绑定

(N)Hibernate 中的一级和二级缓存是啥?

Hibernate中的五大核心类和接口

Hibernate-ORM:11.Hibernate中的关联查询