org.hibernate.NonUniqueObjectException-a different object with the same identifier value was already

1.异常名称:

org.hibernate.NonUniqueObjectException

2.具体信息:

a different object with the same identifier value was already associated with the session: [User#4739]

3.报错解析与解决方法:

简单的说,这个报错含义就是在同一个hibernate的session(会话)中有两个identifier value(标识值)相同的对象。举例说明一下:

public void test(){

    User u1 = session.findById(1);

    User u2 = session.findById(1);

    session.update(u1);

    session.update(u2);

}

例子只是简单说明一下,变量都未定义。只是想说明一下这个session中有两个相同的对象,然后操作其中以后进行更新保存就会报错。网上百度了大把的这个报错解决方式,大同小异:

a>      session.refresh(Object)

b>      session.flush()

c>       session.merge(Object)

我在我的报错代码中,进行了测试,都没有效果,也许和他们的报错不一样吧!

其实我的报错信息很简单:

在修改对象A后,进行更新之前已经把对象A查询出来了,这个时候session中应该已经存在该对象了。之后更新A的时候就报上述异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值