删除记录上的Hibernate级联问题

时间:2015-05-20 14:53:52

标签: nhibernate-mapping many-to-one nhibernate-cascade nhibernate-4

我有级联一对多关系的问题。 我的一个表包含一个组件,该组件链接到另一个表,这是我的库(库与其他表有很多种关系。)。然后该组件在我的一个基类中使用。 我使用实体开发人员生成代码,并使用以下行完成: Baseinfo.hbm.xml

...
<component>
   ...
   <many-to-one name="LocationMap" class="..." cascade="all">
        <column name="ImageId" not-null="true"/>
    </many-to-one>
</component>

....

由于我需要将其设置为null,因此我将not-null更改为“false”。 一切正常,直到我遇到删除记录。将LocationMap设置为null后,我检查数据库,我看到图像记录仍然存在。 经过一些假设我也添加了“delete-orphan”到级联选项,man:cascade =“all,delete-orphan”但它没有用,我也把应用程序放在调试模式下,并且在执行保存代码后,我试过了这在即时窗口上:session.Flush();那不起作用......我不想通过丑陋的编码,并记得删除以后的代码记录,因为它不起作用......,我该怎么办?!

1 个答案:

答案 0 :(得分:1)

我认为all,delete-orphanmany-to-one不支持component。请参阅this question,了解可能的解决方法。