我有以下类别:如何更新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