现象
2021-11-22 09:18:44.497 [http-nio-27601-exec-10] [584644b90744af1f,,584644b90744af1f,1561] ERROR o.h.i.ExceptionMapperStandardImpl - HHH000346: Error during managed flush [Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect) : [com.xxx.project.common.module.xxx.po.TmsVehicleDetailPO#9450]]
背景
使用jpa进行查询数据,然后使用mybatis或者jpa 保存的时候,由于业务复杂,有两个地方调用了save,出现上面的报错。
原因
jpa如果开启了事务,如何查询了某个对象,然后进行修改对象的时候,会对这个对象进行自动保存(即使没有调用save方法)。
解决
把jpa的方法修改成了Mybatis的,查询和保存都修改为mybatis的。