如何理解mybatis的一级缓存?会不会造成数据不一致的问题?-灵析社区

PX_13

最近在了解mybatis缓存的时候, 看到了一级缓存, 并且默认是打开的,但是我有一个疑惑: 如有两个SqlSession, 假设叫做a,b; 如果a查询一次, 紧接着b更新一次, 然后此时a再次查询,是不是查询到的还是老数据 所以是不是我对SqlSession理解不到位? 如果两个用户并发在接口上请求, 是不是大概率不在一个SqlSession上? 如果是, 那会不会出现脏读问题?

阅读量:15

点赞量:0

问AI
«如有两个SqlSession, 假设叫做a,b; 如果a查询一次, 紧接着b更新一次, 然后此时a再次查询,是不是查询到的还是老数据» 是,这个叫‘可重复读’。 «所以是不是我对SqlSession理解不到位? 如果两个用户并发在接口上请求, 是不是大概率不在一个SqlSession上? 如果是, 那会不会出现脏读问题?» 不是大概率不在,是不可能在(除非真的自己写了一套奇怪的逻辑,多个请求能访问到同一个 session…),所以也不存在脏读 通常来说,每个请求独享一个数据库连接,一个 sql session,一个事务上下文