保存对象的深层副本

时间:2014-05-16 17:21:12

标签: java hibernate

所以我有一个持久对象,可以通过网络发送。它可以在没有更改的情况下反弹,需要保存为单独的实体。

当我尝试保存时,我得到了这样的例外。 线程“AWT-EventQueue-0”中的异常org.hibernate.NonUniqueObjectException:具有相同标识符值的另一个对象已与会话关联:

  @Entity   
  class Foo
  {
   @Id @GeneratedValue
   int id;
   @Column
   String name
   @OneToMany
   List<Foo2> = new ArrayList<>();
  }

1 个答案:

答案 0 :(得分:0)

不确定这个答案是否可以帮助您解决问题:

基本上,hibernate所说的是你有两个具有相同标识符的对象(相同的主键),但它们不是同一个对象。

我建议你分解你的代码,即注释掉比特,直到错误消失,然后把代码放回去,直到它回来,你应该找到它的错误。

最常见的是通过级联保存,在对象A和B之间存在级联保存,但对象B已经与会话关联但不在同一个B实例上。

Hibernate Error: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session