springboot中Mybatis 一级缓存 是否生效?
众所周知,myabtis的一级缓存是sqlSesstion级别的,然后经过spring-mybatis的增强处理,每次都会自动关闭sqlsesstion,所以导致生成新的sqlsession,也就是看上去一级缓存失效了?
那么矛盾点是:
以下一个很普通的service
@Service
public class TestSerivce {
@Autowiredprivate PowerPlanDao powerPlanDao;
public Object getObject(){
for(int i=0;i<2;i++){
powerPlanDao.queryMap();
}
return "";
}
}
执行时 通过观察控制台打印sql情况,却又发现只执行了一次sql,也就是说缓存了第一次的结果,所以又得出了生效的结果,不知是为何?
sprinboot版本:2.5.13
mybatis版本: 1.2.0
回答:
如果没有额外配置,不生效才是对的,debug一看这个service是不是代理对象就知道了,就怕是花里胡哨的配置事务走了代理
以上是 springboot中Mybatis 一级缓存 是否生效? 的全部内容, 来源链接: utcz.com/p/944468.html