identifier of an instance of **** was altered from **** to *****

在用hibernate getSession().save(entity)方法保存数据库表实体类的时候报这个异常

我的需求是一个请求要往数据库表插两条数据,根据传值判断做了for循环调两次save()方法

但是第二次会报异常,因为我的for循环用到了同一个实体类对象,只是在第二次循环的时候对实体类对象属性做了更改,这是不允许的。

解决办法也比较简单,循环的时候创建新的对象,两次循环往save方法传的参数不是同一个实体类对象就可以了。

session.clear()也可以,只要clear前后实体对象属性不丢值,满足需求就行。

原文地址:https://www.cnblogs.com/laorenzhenhaoa/p/6836722.html