jiangrongbo / mybatis-book

📚《Mybatis3源码深度解析》 随书源码
184 stars 164 forks source link

flushCache的问题 #17

Open ls9527 opened 4 years ago

ls9527 commented 4 years ago

在书中的132页, 有提到这样一段话: 另外,还可以通过flushCache属性指定Mapper执行后是否刷新缓存

江老师, 这里有一点疑问。

在mybatis的代码中有这样一段:

org.apache.ibatis.executor.BaseExecutor#query(...){
   if (queryStack == 0 && ms.isFlushCacheRequired()) {
      clearLocalCache();
    }
//省略... 从一级缓存中获取, 或者从数据库中查询的代码
}

这里并不是在mapper执行后是否刷新缓存, 而是在mapper执行前清理缓存。

关于这个问题,也可能是我这边场景的实现有问题, 希望江老师看一下。