【发布时间】:2011-05-05 12:39:05
【问题描述】:
我在休眠中遇到了一个奇怪的问题。我在我的项目中使用了hibernate和spring。
问题是我有一个父子关系,当我尝试更新父级时,我得到了异常
原因:org.hibernate.HibernateException:不要更改对具有 cascade="all-delete-orphan" 的集合的引用
以下是映射:
家长:
<set name="kittens" fetch="join" lazy="false"
inverse="true" cascade="all-delete-orphan">
<key>
<column name="ID" precision="22" scale="0"
not-null="true" />
</key>
<one-to-many
class="kitten" />
</set>
孩子:
<composite-id name="id" class="kittenId">
<key-property name="kittenId" type="java.lang.Long">
<column name="Kitten_ID" precision="22" scale="0" />
</key-property>
<key-many-to-one name="cat" class="cat">
<column name="ID" precision="22" scale="0" />
</key-many-to-one>
</composite-id>
我在一个论坛上找到并尝试更改为
public void setKittens(Set kittens) {
this.kittens.clear();
this.kittens.addAll(kittens);
}
但现在我面临着
org.hibernate.PropertyAccessException: 在 Kittens 的 setter 中发生异常
任何帮助将不胜感激。
【问题讨论】:
-
我很确定你有一个嵌套堆栈。发布整个堆栈可能会有所帮助
-
@DaveJarvis 我一直想知道 2011 年创建的问题与 2013 年创建的问题的重复...