hibernate中更新一个表时总是顺带更新另一个表,我只想更新一个表

一对多关系表中的设置为cascade="none",已经设置了不联动,为何还是会联动。inverse是默认值。Hibernate:updatesystemforbookm... 一对多关系表中的设置为 cascade="none",已经设置了不联动,为何还是会联动。inverse是默认值。
Hibernate: update systemforbookmanager.userinfor set userName=?, userAge=?, userAddress=?, userPhone=?, userSex=? where userID=?
Hibernate: update systemforbookmanager.lentbook set userID=null where userID=?
我在<set>元素中添加了inverse="true",就没有更新第二个表了,cascade是控制联动的,inverse是设置由谁管理双方的关联关系,我这里只是不想联动,为何还要设置inverse=“true”?
展开
 我来答
stefwujj
2013-10-16 · TA获得超过417个赞
知道小有建树答主
回答量:141
采纳率:100%
帮助的人:210万
展开全部
你设置cascade="none"即说明 你不想在操作userinfo的时候去级联操作对应的lentbook,这个级联操作仅仅代表的是把对主对象的操作(save,update,delete)施加于关联对象,和对象的关系维护是没有任何关系的;
你设置inverse=true,代表让主对象(userinfo)放弃对从对象(lentbook)的关系维护,即代表当主对象和从对象之间的关联关系发生了变化(即一个lentbook关联到了userinfo,或者一个lentbook放弃和了userinfo的关联),这个关联的变化主对象(userinfo)不需要去维护,这个关系只需要从对象(lentbook)来维护就行了,
所以,你说的更新一个表顺带更新另一个表,对于cascade和inverse的含义是不同的,casacde代表的是顺带操作另一个表(CUD),而inverse代表的是顺带维护另一个表中的关系外键。请分清楚两者的不同。
如果你还有什么疑问,你可以看一下我个人说明里面的资料,希望对你有用。
xyty27
2013-10-15
知道答主
回答量:1
采纳率:0%
帮助的人:1454
展开全部
Hibernate :cascade维护级联操作, inverse维护关系 ,inverse值为true (不维护关系);flase(维护关系); 默认(default)是维护关系
追问
那为何设置不联动,还要即将inverse设置为true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式