A different object with the same identifier value was already associated with the session

2 篇文章 0 订阅
1 篇文章 0 订阅

这个错误是在使用hibernate进行数据存储的时候出现的,在还么有查询的时候,我根据小学英语的水准翻译了一下这个错误的含义:“在session中存在相同身份的不同对象”

在过去的版本中呢,是因为在session使用完后,忘记了关闭,或者是没有commit,这就导致原本是两个的session现在融合到一起,那么这样子不就是同一个对象出现两次了。所以这样解决方法就很简单,使用完毕之后,关闭掉当前session。

但是现在hibernate应该都是3.0版本以上的,所有的session已经不需要手工的open和close了,所以就麻烦了。现在使用的是其内置的方法:getCurrentSession() 。对象的什么的都是自己来操作,我认为在session的操作上面就可以不用费心了,因为这个错误已经被排除了。

结合我自己遇到的情况,之所以会出现这种情况,很大一部分原因是我们的自己的程序上面有问题,仔细检查代码,举个例子来说“例如现在想要从别的数据接口导入数据到内部系统中”,如果在操作的时候,你拉取数据之后,又在同步的情况下面创建了另外的数据对象,这就很可能出现标题中的错误。

至于这个错误的最好的解决方法,我觉得还是需要各位自己的实际情况来看,这就和nullPoint的错误一样,如果有什么万金油的解决办法,恐怕是没有的。如果有说的不对的地方,请各位指出来,再说,没有解决你的问题,你也打不到我。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值