克隆对象时出现“孤立删除”错误

时间:2013-06-13 17:16:33

标签: hibernate jpa clone cascade orphan

在使用orphan-removal =“true”和Cascade.ALL映射的Parent类中有一个@OneToMany关系。

首先,我坚持父对象。

然后我在ManagedBean上克隆父节点,如下所示:

Parent newParent = (Parent) org.apache.commons.lang.SerializationUtils.clone(this.object);

,因此用户可以进行一些更改,然后单击“保存”按钮。

此时我坚持使用newParent但收到以下错误:

  

##“引起:org.hibernate.HibernateException:不要更改对集合的引用   级联= “全删除-孤儿”:package.Parent.children“##

我真的不明白为什么我得到这个错误,因为不需要关系。当我第一次坚持父母时,我没有为这种关系设置任何东西,它可以正常工作。

看起来克隆后问题就出现了,但我不明白为什么!

有人可以帮我解决这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

Hibernate在你加载父级时给了你一些引用,如果你没有出现hibernate给你的orphan-removal集合引用你就不能再保留父级了,所以无论你打算如何处理数据,您可以对这些集合执行的唯一操作是添加或删除项目,但始终保留引用。

如果由于某些特殊原因而丢失任何引用,请再次加载父级并使用hibernate为您提供的新引用。