当前位置: 首页 > 面试题库 >

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

施权
2023-03-14
问题内容

我收到此错误消息:

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

当我尝试执行时addToRelatedPersons(anotherPerson)

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

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

我的网域:

Person {

 static hasMany = [relatedPersons:Person];

}

知道为什么会这样吗?


问题答案:

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

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



 类似资料:
  • 我建立了一个具有两个节点和外部Zookeper集合的SOLR集群。该ZK集合有3个节点。我使用参数启动solr实例: 这意味着,我希望SOLR配置在/solr5下,而不是默认情况下的/下。 文件夹 /solr5在ZK中创建: 我还可以毫无问题地将SOLR配置上传到/solr5中。 我的问题是,在创建集合时,如何将生成的文件置于/solr5之下? 我用来创建集合的命令是: 我查看了本页上的文档,但没

  • 我想在SpringMVC应用程序中保存一个用户对列表。任何用户都可以访问和更改列表(可以删除对,也可以添加新的对)。我不想将此列表保存为数据库中的一个表,因为我希望在web应用程序的执行过程中会形成许多对用户,并且应该经常执行此过程。我决定这个列表是一个单例Springbean(例如,名为ListHolder)的字段,它连接到不同的控制器。由于我是Spring的新手,我担心的是当很多用户同时使用该

  • 我在/usr/local/lib中有libcommon.so,我在程序中链接了这个库。 gcc -o测试test _ Prog . c-L/usr/local/lib-llib common . so 我也试过这个 gcc -o test test_prog.c -L/usr/local/lib -llibcommon 是给予 /usr/bin/ld: 找不到 -llibcommon.so 收集

  • 问题内容: 我正在制作一个C ++共享库,当我编译使用该库的主exe时,编译器会给出以下信息: 库代码: fooclass.h fooclass.cpp 编译: 主要:main.cpp 编译: 该机器是Ubuntu Linux 12 谢谢! 问题答案: 是问题。最新版本的GCC要求您按照相互依赖的顺序放置目标文件和库-因此,根据经验法则,必须将库标志作为链接器的最后一个开关;即写 代替。

  • 我有一个项目,我正试图从我的将其部署到。它在windows,但是当我在那里开发时,我在下面得到了这个错误。 从Azure Web应用程序登录: 我尝试过不同的解决方案,包括在我的文件,如下所示: 我怎样才能解决这个问题?

  • 有人有一个如何使用infinispan目录提供程序配置节点集群以共享索引的工作示例吗?Infinispan上的所有留档(留档严重缺乏btw)意味着它应该像设置一些属性一样简单,但无论我如何尝试,我都无法让它工作。集群中的节点彼此找到很好,我可以在一个节点上进行操作并获取放在另一个节点上的对象。但是一旦我进行查询(使用索引),它就开始失败。 我的infinispan配置: 我没有找到一个包含共享索引