mybatis存页面html的问题,mybatis的一级缓存会不会产生脏数据问题?

众所周知,mybatis的一级缓存是sqlsession级别的缓存,如果sqlsession关闭了缓存就释放了,在同一个sqlsession中如果我做了update或者delete操作,mybatis会清空该sqlsession的缓存以保证不会出现脏数据,但是如果这时有另外一个sqlsession B也update同一张表T,那么sqlsession

A怎么知道要清空表T的缓存以防止出现脏数据呢?难道mybatis会维护一个全局的map,key是表名,value是此表最后的更新时间?每次在sqlsession里查询数据时,都会对照下当前缓存里此表的更新时间和map中对应表的更新时间是否一致,如果不一样,说明缓存已失效,要从数据库取数据.看了下源码,貌似没看到类似的判断逻辑,不懂了,向大家求教,描述的有点乱,勿喷,多谢

回答

这个问题你去写个单元测试模拟下场景就知道了吧,根据我的理解是会有脏读的情况的,需要你自己手动刷新一级缓存

一级缓存在多session和集群的情况下都会有脏数据,二级缓存的默认实现在集群环境下也会有脏数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值