可以說我有兩張表 - 「孩子」和「父母」之間有多對一的關係。我需要的是刪除父記錄時刪除子條目。Hibernate:如何在刪除父項時使Hibernate從子表中刪除記錄如果子項與多對一的父項鍊接?
如果我通過在parent.hbm中創建一對多關聯並設置cascade =「all-delete-orphan」從父項鍊接子表,這不是問題。
問題是我不希望父對方有一對多的關係,所以我在孩子一方創建了多對一的關係。原因是子表非常大,我不想每次使用父母時提取數百條記錄。 所以我的配置是這樣的:
child.hbm:
<many-to-one name="parent" class="com.example.Parent" column="parentid"/>
而parent.hbm有孩子沒有關聯。
現在的問題是:如何讓Hibernate從子表中刪除記錄時刪除父項,如果一個子項與多對一的父項鍊接?
謝謝。
爲什麼不在你的家長中使用懶惰的一對多,而只是使用級聯選項?當你使用父母時,你不會加載孩子。 – gcores 2008-12-11 16:52:13
這就是我的想法,但恐怕會給結構帶來混亂。我將需要添加「設置兒童」字段到父類,不應該在代碼中的任何地方使用,只用於休眠級聯刪除。你認爲這樣可以嗎? –
serg
2008-12-11 16:56:19