论坛首页 Java企业应用论坛

inverse是什么意思?

浏览 17734 次
该帖已经被评为精华帖
作者 正文
   发表时间: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时,它指明这是双向关联的反向端,对这一端的操作不会影响到另一端,而另一端的操作可能会影响到反向端的操作,是这样吗?

谢谢!
1 请登录后投票
   发表时间: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一端,即必须这样
xxx.getItems();.add(item);;
item.setXXX(xxx);;


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

跳转论坛:
Global site tag (gtag.js) - Google Analytics