Hibernate inverse

inverse 标示是否放弃对java对象关系的维护:inverse= true 就是放弃维护,false就是不放弃维护,

inverse=true在那个xml文件里面就表示谁放弃对关系的维护(一般是一的那一方放弃,多的一方维护)

 

比如,Employee(E)  和 Department (D)对象(二者是多个Employee  对一个Department 的关系), 都使用了D.setE() ,和E.setD()

session.save(E)  session.save(D)

 

如果在D的xml文件文件set项里面inverse是true,就标示D不再负责管理D了,即使使用了D.setE()的方法,还是不会因为这行代码产生sql语句,可是如果E.setD(),那么就会因为这个方法产生sql了(不过具体还要看java对象的是什么状态).

如果D的xml文件文件set项里面inverse是false,,就标示D要负责管理D了,使用了D.setE()的方法,就会因为这行代码产生sql语句,而且如果E.setD(),那么也就会因为这个方法产生sql了.就是比上面多产生(一个或者)几个update了

 

总之inverse跟强调的对象间关系的维护.(hibernate的inverse缺省是false)

在有序集合如List和数组里面是不容许配inverse=true的.因为如果一放弃对多的关系的维护,那么对他们顺序的维护自然也是不管的.

在many -to -one 里面也是不可以配inverse= true的,那样hibernate效率会很低的.

 

个人理解的,表达能力有限,也许有错,可是怕忘记了还是的记一下.(错了就告诉我一下)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值