1

我有一個一對多的關係問題。 我的一個表格包含一個組件,並且該組件鏈接到另一個表格,這是我的畫廊(畫廊與其他表格有許多種關係)。然後該組件被用在我的一個基類中。 我用實體開發者生成代碼,並將其與這些線來完成它: Baseinfo.hbm.xmlHibernate級聯問題刪除記錄

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

....

因爲我需要一些時間設置爲空,我將not-null更改爲「false」。 一切正常,直到我遇到刪除記錄。將LocationMap設置爲null後,我檢查數據庫,並看到圖像記錄仍然存在。 經過一些論壇之後,我也添加了「delete-orphan」級聯選項,man:cascade =「all,delete-orphan」但它不起作用,我也將應用程序放在調試模式下,執行保存代碼後,我在即時窗口嘗試了這個:session.Flush();並沒有工作...我不想通過醜陋的編碼,並記住要刪除後面的代碼記錄,導致它不工作,我該怎麼辦?!

回答

1

我不認爲all,delete-orphan支持many-to-onecomponent。請參閱this question,以解決可能的問題。

+0

我在手機上,並且有很多麻煩......我忘了我上傳這些照片之前所寫的內容,當我回到應用程序時重新啓動堆棧......但我知道我無法做到這個代碼,我改變了一下,使它通用,但一旦它的用法...我失敗了,我上傳兩張照片,我在這裏粘貼一個鏈接,然後在下一個評論中,因爲我害怕堆棧獲取重新啓動,我失去了我的評論...一個顯示我做了什麼攔截器,和其他顯示爲什麼我不能使用它(我的應用程序的結構)https://www.dropbox.com/s/5kvk6vnzno0joyn/DSC_0179.JPG ?dl = 0 – deadManN

+0

https://www.dropbox.com/s/dtiddod8dc38id5/DSC_0180.JPG?dl=0 – deadManN