2009-05-01 71 views
0

我有一个课程对象。课程对象有一组教程和一组应用程序。 当我删除一个课程对象时,我想要关联的一组教程和应用程序被删除。 我course.hbm如下冬眠删除

和我application.hbm包含

<property name="appdatetime" type="timestamp"> 
     <column name="appdatetime" length="19" /> 
    </property> 
    <property name="appstatus" type="java.lang.Integer"> 
     <column name="appstatus" /> 
    </property> 
    <property name="apptype" type="java.lang.Integer"> 
     <column name="apptype" /> 
    </property> 

    <many-to-one name="course" column="cid"/> 
    <many-to-one name="employee" column="empid" /> 
</class> 

回答

0

设置级联=“删除孤儿,所有”,并删除操作将会向下级联到教程和应用程序,并删除它们,以及如果他们孤立的(未连接到任何其他课程)。

我们使用hibernate注释,所以我不确定是否需要添加确切的xml,但是从文档看来,cascade =“all-delete-orphan”应该位于每个集合定义上。

+0

感谢您的答复。但我试着在course.hbm中设置此属性,并试图删除,但教程和应用程序不geting删除。 不是我在应用程序中映射。 我需要在coure.hbm或tutotials.hbm和application.hbm中设置此属性? – user93796 2009-05-01 06:49:37

+0

嘿,我已经发布我的application.hbm在这里只是看看。 – user93796 2009-05-01 06:53:16

0

虽然在hibernate上可能会这样做,但正确方法(确保数据库始终保持完整性)是在数据库级别上使用CASCADE ON DELETE约束。检查您的数据库文档的详细信息