首页 新闻 会员 周边 捐助

MyBatis Plus提供的BaseMapper类中的增、删、改操作不会刷新自定义Mapper文件中的缓存,如何解决?

0
悬赏园豆:5 [待解决问题]

在使用MyBatis Plus。XXMapper接口继承了BaseMapper接口,同时XXMapper还有对应的xml文件,其中有一些自定义方法,而且使用<cache />开启了缓存。当我使用BaseMapper.save(T Entity)保存了一个实体类到数据库,再使用XXMapper文件里的自定义查询方法时,发现查询到的数据是使用BaseMapper.save(T Entity)插入实体类前的数据,这显然是有问题的。该如何解决这个问题呢?

Halloworlds的主页 Halloworlds | 初学一级 | 园豆:190
提问于:2021-10-04 15:42
< >
分享
所有回答(1)
0

mybatis内存本质是三个层级。
第一个层级,session层级。
第二个层级,namespace,即XXMapper层级。
第三个层级,statement层级,即某一个SQL语句的层级。这个SQL语句通常是select。
停用第二个层次的缓存,在select标签上添加useCache,设置为false。停用第一个层次的缓存,在select标签上添加flushCache为true。

蜗牛旅行1899 | 园豆:285 (菜鸟二级) | 2024-05-20 16:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册