论坛首页 Java版 Hibernate

inverse是什么意思?

浏览 9493 次
该帖已经被评为精华帖
作者 正文
最后更新时间:2003-11-21
<bag
            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有什么不同,谢谢!
   
最后更新时间:2003-11-21
《论坛提问的智慧》第三条
   
0 请登录后投票
最后更新时间:2003-11-22
inverse 直接讲是允许外键字段可以为空,否则外键字段不能为空.用于cascade级联操作时.
   
0 请登录后投票
最后更新时间:2003-11-22
好像不是这么回事的吧。
inverse是用于双向关联时的,具体看看以前的贴子...
   
0 请登录后投票
最后更新时间:2003-11-23
没错。
   
0 请登录后投票
最后更新时间:2003-11-25
谢谢各位,这几天忙别的事也没上这儿来,我想我快明白了,是不是这个意思:
当设为inverser时,它指明这是双向关联的反向端,对这一端的操作不会影响到另一端,而另一端的操作可能会影响到反向端的操作,是这样吗?

谢谢!
   
0 请登录后投票
最后更新时间:2003-11-25
还有一个问题不明白,为什么在many端,inverse设为true会比设为false高效呢,想不通,能帮我解决这个疑问吗?谢谢!
   
0 请登录后投票
最后更新时间:2003-11-25
引用

当设为inverser时,它指明这是双向关联的反向端,对这一端的操作不会影响到另一端,而另一端的操作可能会影响到反向端的操作,是这样吗?

不是。只有对inverse="false"一端的操作才会被保存到数据库,inverse="true"一端是不会的。

引用

为什么在many端,inverse设为true会比设为false高效呢,想不通

你可以看看单向的one-to-many(inverse="false")更新数据库时产生的sql语句
以及文档中关于Collection的性能一节。
   
0 请登录后投票
最后更新时间: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端是什么?
   
0 请登录后投票
最后更新时间:2003-11-25
就是你光改动这个bag是不会影响数据库的,必须改动它所对应的many-to-one一端,即必须这样
[code:1]
xxx.getItems().add(item);
item.setXXX(xxx);
[/code:1]

这个说法不对,看下面
http://forum.hibernate.org.cn/viewtopic.php?p=7393#7391
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐