Mybatis的一级缓存在Spring中为什么会失效
上图是在做一个select查询时的方法调用栈,发现mybatis在和spring的整合包mybatis-spring中做了关闭SqlSession的操作,原因应该是mybatis交给Spring管理之后没有办法控制SqlSession的关闭,让程序员去关闭的话又增加了程序对mybatis的耦合性,mybatis的一级缓存就是基于SqlSession的,因此一级缓存在Spring中就失效了。
上图是在做一个select查询时的方法调用栈,发现mybatis在和spring的整合包mybatis-spring中做了关闭SqlSession的操作,原因应该是mybatis交给Spring管理之后没有办法控制SqlSession的关闭,让程序员去关闭的话又增加了程序对mybatis的耦合性,mybatis的一级缓存就是基于SqlSession的,因此一级缓存在Spring中就失效了。