在一个开启了事务的方法中先执行了jpa的save方法更新了部分字段,然后使用mybatis查出该条记录,更新另一部分字段,发现最终提交到数据库的数据中jpa的save方法失效,该部分字段没有被更新。调试时发现mybatis查出来的数据是jpa save之前的数据。经排查,原因是jpa与mybatis都有自己的缓存机制,且两者机制不共通,解决办法是在mybatis查询前执行缓存清除方法,注意两个orm框架都需要清理缓存,否则无法访问到正确数据。
jpa与mybatis两个不同orm框架混用导致的缓存脏数据问题
最新推荐文章于 2024-03-16 21:47:58 发布