NonUniqueObjectException

原创 2011年01月10日 17:18:00

使用hibernate保存对象时,出现如下错误:

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [com.lee.dao.hibernate.User#12]

网上查阅资料后,找到解决办法:

解决方法:

     使用 hibernate 3 的 merge 方法. session.merge(newDetail)即可,它会在 session 缓存中找到持久化对象,把新对象的属性赋过去,再保存原session中的持久化对象。

        如果在session或数据库中没有的对象,用merge方法的话,它也能够帮你把记录 insert 到表中,相当于 save 方法。

上面是一个简单的例子,实际业务中可能是经过一番复杂的操作后自己也很难搞清楚 new 的一个新对象在 session/数据库中是否已存在。所以第一种方法你需要清楚你的每一个对象状态,第二种方法在 hibernate 3 中就比较通用一些。

附 hibernate javadoc 对 session.merge() 方法的注释:

Copy the state of the given object onto the persistent object with the same identifier. If there is no persistent instance currently associated with the session, it will be loaded. Return the persistent instance. If the given instance is unsaved, save a copy of and return it as a newly persistent instance. The given instance does not become associated with the session. This operation cascades to associated instances if the association is mapped with cascade="merge".

The semantics of this method are defined by JSR-220.

Hibernate的一个经典异常(org.hibernate.NonUniqueObjectException)

异常为: org.hibernate.NonUniqueObjectException: a different object with the same identifier value was a...
  • hongchangfirst
  • hongchangfirst
  • 2013年08月23日 14:41
  • 6565

org.hibernate.NonUniqueObjectException两种解决方法

出现这个异常的原因: Hibernate save 在 session 中已存在相同 OID(主键) 的对象。比如,先删除,后插入。 delete(id); person.setId...
  • u012964999
  • u012964999
  • 2016年06月23日 11:06
  • 4111

org.hibernate.NonUniqueObjectException的原因与解决方法

相比学习hibernate的童鞋都遇到过这个问题,今天遇到这个问题了,就此来总结一下。 出现这个异常的原因: 在同一个session内,如果已经有一个对象已经是持久化状态(load进来等),现在...
  • u013410747
  • u013410747
  • 2015年09月25日 05:14
  • 934

解決NonUniqueObjectException異常及分析

今天上午碰到了一個從沒碰到的問題。就是程序在添加的時候報了個NonUniqueObjectException 異常。于是乎上網查了些資料,發現原因是:所以這個原因一般也不會發生的,一般發生重復保存或更...
  • wwghnr
  • wwghnr
  • 2007年12月05日 12:44
  • 991

NonUniqueObjectException问题的解决

     在公司做模块的时候遇到了NonUniqueObjectException 错误, a different object with the same identifier value was ...
  • ak47947
  • ak47947
  • 2008年12月05日 13:55
  • 4382

org.hibernate.NonUniqueObjectException异常解决方法(2)

 异常:org.hibernate.NonUniqueObjectException: a different object with the same identifier value was al...
  • Arthur0088
  • Arthur0088
  • 2009年11月03日 09:48
  • 12221

NonUniqueObjectException

使用hibernate保存对象时,出现如下错误:org.hibernate.NonUniqueObjectException: a different object with the same ide...
  • fjun0910
  • fjun0910
  • 2011年01月10日 17:18
  • 449

Hibernate异常:a different object with the same identifier value

Hibernate:a different object with the same identifier value was already associated with the session ...
  • jayliu1989
  • jayliu1989
  • 2018年01月05日 11:10
  • 28

NonUniqueObjectException异常解决办法

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was alread...
  • Java2King
  • Java2King
  • 2009年08月10日 18:03
  • 527

出现 org.hibernate.NonUniqueObjectException 错误的解决方法

 org.hibernate.NonUniqueObjectException:a different object with the same identifier value was alread...
  • abeetle
  • abeetle
  • 2007年03月01日 14:16
  • 2562
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NonUniqueObjectException
举报原因:
原因补充:

(最多只允许输入30个字)