锁定老帖子 主题:inverse是什么意思?
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2003-11-21
name="items" inverse="true" lazy="true" order-by="DATE_TIME" cascade="all"> <key column="BLOG_ID"/> <one-to-many class="eg.BlogItem"/> </bag> 在上面这段配置中,inverse=true和false有什么不同,谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2003-11-21
《论坛提问的智慧》第三条
|
|
返回顶楼 | |
发表时间:2003-11-22
inverse 直接讲是允许外键字段可以为空,否则外键字段不能为空.用于cascade级联操作时.
|
|
返回顶楼 | |
发表时间:2003-11-22
好像不是这么回事的吧。
inverse是用于双向关联时的,具体看看以前的贴子... |
|
返回顶楼 | |
发表时间:2003-11-23
没错。
|
|
返回顶楼 | |
发表时间:2003-11-25
谢谢各位,这几天忙别的事也没上这儿来,我想我快明白了,是不是这个意思:
当设为inverser时,它指明这是双向关联的反向端,对这一端的操作不会影响到另一端,而另一端的操作可能会影响到反向端的操作,是这样吗? 谢谢! |
|
返回顶楼 | |
发表时间:2003-11-25
还有一个问题不明白,为什么在many端,inverse设为true会比设为false高效呢,想不通,能帮我解决这个疑问吗?谢谢!
|
|
返回顶楼 | |
发表时间:2003-11-25
引用 当设为inverser时,它指明这是双向关联的反向端,对这一端的操作不会影响到另一端,而另一端的操作可能会影响到反向端的操作,是这样吗? 不是。只有对inverse="false"一端的操作才会被保存到数据库,inverse="true"一端是不会的。 引用 为什么在many端,inverse设为true会比设为false高效呢,想不通 你可以看看单向的one-to-many(inverse="false")更新数据库时产生的sql语句 以及文档中关于Collection的性能一节。 |
|
返回顶楼 | |
发表时间:2003-11-25
这里的false,true端是怎么区别的
<bag name="items" inverse="true" lazy="true" order-by="DATE_TIME" cascade="all"> <key column="BLOG_ID"/> <one-to-many class="eg.BlogItem"/> </bag> 这段定义中的inverser="true"它所指的true端是什么? |
|
返回顶楼 | |
发表时间:2003-11-25
就是你光改动这个bag是不会影响数据库的,必须改动它所对应的many-to-one一端,即必须这样
xxx.getItems();.add(item);; item.setXXX(xxx);; 这个说法不对,看下面 http://forum.hibernate.org.cn/viewtopic.php?p=7393#7391 |
|
返回顶楼 | |