如何使用 cascade=“all,delete-orphan” 复制休眠集合
我正在尝试制作休眠实体A的副本,如下所示:
A a = (A) session.get(A.class, id);
session.evict(a);
a.setId(null);
session.save(a);
然而,这不起作用,我得到以下解释:
org.hibernate.HibernateException: Don't change the reference to a collection with cascade="all-delete-orphan": com.test.A.B
可以安全地假设会发生此错误,因为i在实体A中定义了B实体的集合:
<list name="B" table="B" lazy="false" cascade="all,delete-orphan">
<key column="A_ID" not-null="true"/>
<index column="X"/>
<one-to-many class="com.test.B"/>
</list>
如何制作实体A的副本,包括其实体B的集合,而不会休眠而不为此感到不满?