一尘不染

找到对集合org.hibernate.HibernateException的共享引用

hibernate

我收到此错误消息:

错误:找到对集合的共享引用:Person.relatedPersons

当我尝试执行时addToRelatedPersons(anotherPerson)

person.addToRelatedPersons(anotherPerson);
anotherPerson.addToRelatedPersons(person);

anotherPerson.save();
person.save();

我的网域:

Person {

 static hasMany = [relatedPersons:Person];

}

知道为什么会这样吗?


阅读 220

收藏
2020-06-20

共1个答案

一尘不染

当您尝试持久保存多个共享 同一 集合引用的实体实例(即与集合相等性相反的集合标识)时,Hibernate会显示此错误。

请注意,这意味着同样的 集合 ,而不是集合元素-
换句话说,relatedPersons在两个personanotherPerson必须相同。也许您是在实体加载后重置该集合?或者您已经使用相同的集合实例初始化了两个引用?

2020-06-20