org.hibernate.PersistentObjectException:传递给persist的分离实体 - ManyToMany Mapping

时间:2016-12-25 12:39:51

标签: java spring hibernate jpa spring-security

  • 我有实体患者和实体测试。
  • 两者都有ManyToMany关系。
  • 我在两侧添加了CASCADE_TYPE = ALL。
  • 我正在使用Hibernate EntityManager的persist(Patient);方法
  • 当我执行它时,它会抛出“org.hibernate.PersistentObjectException:传递给persist的分离实体:Test”
  • 这些是屏幕。

患者班 Patient Class - Mapping

测试课 Test Class - Mapping

如果有人有解决方案,请分享。

感谢。

3 个答案:

答案 0 :(得分:0)

感谢。我从em.persist()将其更改为em.merge()。工作良好。

答案 1 :(得分:0)

watchmerge与您的实体做了很多不同的事情。您是否确定合并首先完成了您打算做的事情? (见this topic over here

如果没有看到您编写的代码来保留persist - 实体,我无法真正告诉您出了什么问题,但我可以想象它与您的manyToMany关系有关在那里。你确定要cascade.ALL吗?如果从数据库中删除test - 实例,则级联将删除该列表中的每个test。 然后,对于该列表中的每个patient,它将为每个patient级联.REMOVE 在test

答案 2 :(得分:-1)

我建议您尝试修改CASCADE_TYPE=PERSIST