我对级联一对多关系有问题。我的一个表包含一个组件,该组件链接到另一个表,这是我的画廊(画廊有许多种类的关系与其他表。)然后,在我的一个基类中使用该组件。我使用entity developer来生成代码,它是这样做的:Baseinfo.hbm.xml
...
<component>
...
<many-to-one name="LocationMap" class="..." cascade="all">
<column name="ImageId" not-null="true"/>
</many-to-one>
</component>
…
由于我需要将它设置为null,所以我将非null更改为"false"。一切都很好,直到我遇到删除记录。将LocationMap设置为null后,我检查数据库,看到图像记录仍然存在。经过一些讨论,我还添加了"delete-orphan"到级联选项,man: cascade="all,delete-orphan",但它不起作用,我还将应用程序置于调试模式,并在执行保存代码后,我在即时窗口上尝试了这个:session.Flush();但这并没有奏效……我不想经历丑陋的代码,记得在后面的代码中删除记录,因为它不起作用…我该怎么办?
我认为all,delete-orphan
不支持many-to-one
和component
。