讓我直接得到我的問題,使用@OnDelete
這裏將刪除這個和任何其他InventoryPreference
實體,如果Inventory
實體被刪除?我只是無法理解Hibernate's annotations的參考文獻..所以我需要你的幫助來確認我的理解正確。試圖瞭解CascadeType.ALL與@OnDelete的區別!
public class InventoryPreference {
...
@ManyToOne
@OnDelete(action = OnDeleteAction.CASCADE)
@JoinColumn(name = "inventory_id", nullable = false)
public Inventory getInventory() {
return inventory;
}
}
難道我那麼在Inventory
實體需要使用CascadeType.ALL
太多,如果該Inventory
實體刪除,以讓所有的InventoryPreference
小號刪除?
public class Inventory {
...
@OneToMany(mappedBy = "inventory", cascade = CascadeType.ALL)
public Set<InventoryPreference> getPreferenceItems() {
return preferenceItems;
}
}
如果第一個問題是真實的,那麼我看不到的CascadeType.ALL
點。如果不是,那麼當刪除Inventory
時,它們每個都會做什麼以及我需要指定哪些註釋和配置來刪除InventoryPreference
?哦,我不想Inventory
被刪除,如果InventoryPreference
被刪除。對不起,如果太明顯了。
謝謝!是的,那正是我想要的。如果我像前面說的那樣將級聯配置添加到'@ OneToMany',那麼我不需要在級聯的'Inventory'實體中添加任何內容,對嗎? – Rihards
那麼OneToMany是在庫存實體:)你不需要添加任何東西到ManyToOne映射庫存到InventoryPreference,沒有。我認爲這就是你的意思。 – Affe
謝謝,再次感謝你!你從小時候的長時間閱讀中拯救了我的一天,並試圖理解Hibernate的參考,這是一場噩夢! :) – Rihards