我有以下類別:如何更新hibernate上的集合?
class A {
Integer id;
@OneToMany(mappedBy="parent", fetch=FetchType.EAGER, cascade={CascadeType.ALL})
Set<B> children;
}
class B {
Integer id;
@ManyToOne(fetch=FetchType.EAGER)
A parent;
}
在數據庫中有數據,說有{B1,B2,B3}兒童A1。 當我嘗試更新a1的孩子集{b4,b5}我最終在數據庫中有b1..b5。 在我的代碼中,我採取了預防措施,在子集上調用clear()
,但它不影響數據庫。
我應該迭代和呼籲session.delete(child)
A的每個孩子?
謝謝,
我正在使用hibernate 3.6.4,並且DELETE_ORPHAN顯示爲棄用。 – Dan 2011-06-13 17:55:09
感謝您指出。 Javadocs表示已棄用棄用版本。使用@OneToOne(orphanRemoval = true)或@OneToMany(orphanRemoval = true)。我要更新答案以明確說明。 – 2011-06-13 17:59:29