3
我有一個用戶,並在一個一對多的關係,一組機構的子記錄:如何刪除而不是設置外鍵爲空
User.hbm.xml:
<set name="authorities" table="authorities" cascade="all-delete-orphan">
<key column="user_id" />
<one-to-many class="com.ebisent.domain.Authority" />
</set>
當我刪除一個用戶時,我也想刪除權限,但是發生的情況是子表的外鍵(authorities.user_id)被設置爲null。然後,我得到以下錯誤和用戶刪除回滾:
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
的authorities.user_id更新爲null是不是然而回滾。
當我刪除父用戶時,如何刪除權限?
編輯: 我得到這個工作,明確刪除權威,呼籲refresh()
對用戶,然後刪除用戶,但我想知道「正確」的方式來做到這一點。
您是否需要關係上的inverse =「true」來讓子記錄實際刪除? – nos 2010-09-19 17:04:15
嗨,帕斯卡爾,號碼。該關聯只是從父母到孩子,並且我得到與所有,delete-orphan和delete相同的結果,但是......我沒有session.flush(),並且似乎解決了這個問題。謝謝! – outis 2010-09-19 17:41:20
@nos IMO,'inverse = true'對於單向關聯不應該是必需的。 – 2010-09-19 18:00:44