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

标签 java hibernate grails groovy grails-orm

我收到此错误消息:

error: Found shared references to a collection: Person.relatedPersons

当我尝试执行 addToRelatedPersons(anotherPerson) 时:

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

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

我的域名:

Person {

 static hasMany = [relatedPersons:Person];

}

知道为什么会这样吗?

最佳答案

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

请注意,它表示相同的 collection,而不是 collection 元素 - 换句话说,personanotherPersonrelatedPersons 必须相同。也许您正在加载实体后重置该集合?或者你已经用同一个集合实例初始化了两个引用?

关于java - 找到对集合 org.hibernate.HibernateException 的共享引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1692871/

相关文章:

grails - 使用grails-spring-security-rest进行基于HTTP基本身份验证 token 的操作

java - Spring 安全单点登录

java - 如何检查特定的 Windows 服务正在运行

java - 如何使用 Selenium WebDriver 中的 JavasSript 在文本字段/框中输入值

java - JBoss 缓存配置

grails - 使用Spring Security UI插件登录自定义字段

java - Servlet 映射不适用于生产环境,但适用于本地主机

hibernate - Grails:在复合键上映射域类字段

hibernate - 管理 hibernate session

grails - 在 grails 应用程序中安装 spring 安全插件