您的位置:程序门 -> java -> 框架、开源



hibernate的cascade属性不起作用!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


hibernate的cascade属性不起作用!
发表于:2008-01-16 10:14:45 楼主
关联关系:1   news   :n   keywords

newsvo.hbm.xml:
      <set   name="keywords"   inverse="true"     cascade="delete"   lazy="false">
            <key>
                <column   name="n_id"/>
            </key>
            <one-to-many   class="order.vo.keywordsvo"/>
</set>  


keywordsvo.hbm.xml:
        <many-to-one   name="news">
        <column   name="n_id"/>
        </many-to-one>


执行session.delete(),控制台输出:
hibernate:   delete   from   news   where   id=?

去除xml中的cascade="delete",执行session.delete(),控制台依旧输出:
hibernate:   delete   from   news   where   id=?

去除xml中的inverse="true",执行session.delete(),控制台输出:
hibernate:   update   keywords   set   n_id=null   where   n_id=?
hibernate:   delete   from   news   where   id=?


感觉上就是有没有cascode都一样!为什么会这样啊
发表于:2008-01-16 10:15:511楼 得分:0
newsvo.hbm.xml:  
            <set       name="keywords"       inverse="true"           cascade="delete"       lazy="false">  
                        <key>  
                                <column       name="n_id"/>  
                        </key>  
                        <one-to-many       class="order.vo.keywordsvo"/>  
</set>      

keywordsvo.hbm.xml:  
                <many-to-one       name="news">  
                <column       name="n_id"/>  
                </many-to-one>  

执行session.delete(),控制台输出:  
hibernate:       delete       from       news       where       id=?  

去除xml中的cascade="delete",执行session.delete(),控制台依旧输出:  
hibernate:       delete       from       news       where       id=?  

去除xml中的inverse="true",执行session.delete(),控制台输出:  
hibernate:       update       keywords       set       n_id=null       where       n_id=?  
hibernate:       delete       from       news       where       id=?  

感觉上就是有没有cascode都一样!为什么会这样啊
发表于:2008-01-16 10:35:142楼 得分:0
自己顶吧
发表于:2008-01-16 16:40:153楼 得分:0
你配置错地方了  
  <many-to-one       name="news"   cascade="delete"   >  
                <column       name="n_id"/>  
                </many-to-one>  


建议你看下hibernate的基础书.孙mm那本还不错.
发表于:2008-01-17 13:52:174楼 得分:0
bushuang   你才配做地方了呢。cascade当然是放在one这面!


快速检索

最新资讯
热门点击