使用Spring JPA hibernate 事务遇到的问题
说明
在spring boot的项目中使用本地数据库(mysql)事务(对象关系映射使用的是hibernate),做删除、插入时遇到如下错误
Duplicate entry ‘xxxxx’ for key ‘UNIQUE_xxxx’
,首先给我的感觉是删除,插入没有在一个事务中,因此检查事务的注解和相关属性,折腾半天没有解决问题。
最后没办法在@query时使用了nativeQuery=true,虽然问题解决了但感觉没有使用jpa提供接口的便利性,后来在删除语句后做了次查询操作,错误就不存在了,才想到原来在删除语句执行后事务和hibernate的缓存数据没有同步,通过查询使用两者同步了,也可以用 flush 方法同步,太坑了花费了不少时间。