有表capture_game与capture_time 一对多关联关系父类CaptureGame
private Set TimeSets = new HashSet(0) ; //策略详细 子类CaptureTimeprivate CaptureGame captureGame; //策略编号game.hbm.xml配置:<set name="TimeSets" inverse="true" cascade="all-delete-orphan" lazy="false">
            <key>
                <column name="capture_id" length="32" not-null="true"/>
            </key>
            <one-to-many class="com.ysh.sellSys.CaptureTime.valueobject.CaptureTime"/>
        </set>time.hbm.xml 配置:<many-to-one name="captureGame"  fetch="select" class="com.ysh.sellSys.captureGame.valueobject.CaptureGame">
            <column name="capture_id" length="32" not-null="true"/>
      </many-to-one> 为什么执行级联删除时老报错:2009-08-26 09:57:49,546 ERROR SysExceptionHandler:138 [http-8080-Processor20] - deleted object would be re-saved by cascade (remove deleted object from associations): [com.ysh.sellSys.CaptureTime.valueobject.CaptureTime#40288182234fecae012350320d410006]; nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.ysh.sellSys.CaptureTime.valueobject.CaptureTime#40288182234fecae012350320d410006]
org.springframework.orm.hibernate3.HibernateObjectRetrievalFailureException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.ysh.sellSys.CaptureTime.valueobject.CaptureTime#40288182234fecae012350320d410006]; nested exception is org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.ysh.sellSys.CaptureTime.valueobject.CaptureTime#40288182234fecae012350320d410006]
org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [com.ysh.sellSys.CaptureTime.valueobject.CaptureTime#40288182234fecae012350320d410006]

解决方案 »

  1.   

    为什么要级联删除啊?
    直接用程序+事务控制多好啊,一的一端inverse="true",关系维护端已经在多的一端!
    建议你还是用程序写,就是多写一条hql语句
      

  2.   

    一对多关系 关系维护端一般都是在多的一端! 我该成inverse="false" 也报同样的错
    感觉hibernate的关联是不怎么好用
      

  3.   


    inverse="true"是不能动的,如果你改成false了才是错的,一对多关联都把关系维护端放在多的一端,如果放一德一端会出现很多问题。
    建议你不要级联操作,用程序去代替级联操作!
      

  4.   

    http://www.blogjava.net/crazycy/archive/2006/06/24/54939.html
      

  5.   

    楼主你把game.hbm.xml改下:
    <set name="TimeSets" inverse="true" cascade="all-delete-orphan" lazy="false">
                <key>
                    <column name="capture_id" length="32" not-null="true"/>
                </key>
                <one-to-many class="com.ysh.sellSys.CaptureTime.valueobject.CaptureTime" cascade="delete"/>
            </set>