Hibernate inverse
inverse 用来设置由谁来管理关联关系。
如果为false为双方都可以管理关系,谁管理关系谁维护,如果都管理的关系,双方都可以维护。当关系由多对一端来维护时,效率较高,当关系由一对一端来维护时,会多执行update语句。看下面例子。
1.由一对端来管理:
我们来看一下打印的sql:
这里就不仅有3条insert语句。还有2条update语句,需要先去保存多对端的数据,再保存一对端的数据,最后再去修改多对端的数据,效率不高。
2.由多对端来管路:
我们来看一下打印的sql
这里仅仅只有三条insert语句,不再需要update,所以由多对端来管理关系效率较高。
3.双方共同管理:
双方共同管理的话,效果跟一对方管理效果一样,也会先去insert然后再去update。
如果为true则关系由设置的另一方来管理。如果一对端设置inverse为true则一对端不会去维护关系,不管有没有给对方设置关联值都不会去管理。建议给一对端设置inverse=“true”,让多对端去管理关系,这样效率更高。
注:本文是在学习期间根据网上视频写的学习笔记,如有侵权请联系删除!