Mybatis 两个xml绑定同一个Mapper接口时, 二级缓存没有正确刷新的问题!
Posted imyjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis 两个xml绑定同一个Mapper接口时, 二级缓存没有正确刷新的问题!相关的知识,希望对你有一定的参考价值。
如下图所示: 我有两个xml文件, 他们有着相同的 namespace (指向 IssueMapper)
为了启用二级缓存, 我在 IssueMapper.xml 中添加了 <cache /> 节点 (不能在两个xml中同时添加, 否则启动时会报错)
看一眼 Mapper接口, 只有两个接口
其中 findOne() 在 IssueMapper.xml 中实现, 而 update 在 IssueMapperExt.xml 中实现
现在使用如下步骤调用
正常来说, 执行了 update 操作后, 此namespace中的二级缓存将被移除, 然而 实际update却没有去刷新缓存, 导致 后面的第二次查询从二级缓存中取到了脏数据
此问题已提交至github, 后续详情请跟踪issue > https://github.com/mybatis/mybatis-3/issues/1599 (含复现用例代码)
以上是关于Mybatis 两个xml绑定同一个Mapper接口时, 二级缓存没有正确刷新的问题!的主要内容,如果未能解决你的问题,请参考以下文章
mybatis中xml格式的mapper文件中接收入参时#和$的区别
JavaLearn#(27)MyBatis进阶:Mapper代理(接口绑定)多参数传递模糊查询分页自增主键回填动态SQL一级缓存二级缓存
JavaLearn#(27)MyBatis进阶:Mapper代理(接口绑定)多参数传递模糊查询分页自增主键回填动态SQL一级缓存二级缓存