您的位置:首页 > 移动开发 > Objective-C

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

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

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

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

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

至于这个错误的最好的解决方法,我觉得还是需要各位自己的实际情况来看,这就和nullPoint的错误一样,如果有什么万金油的解决办法,恐怕是没有的。如果有说的不对的地方,请各位指出来,再说,没有解决你的问题,你也打不到我。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐