SUPPORT会导致mybatis查询缓存失效

SUPPORT会导致mybatis查询缓存失效

如代码所示,增加@Transactional(propagation = Propagation.SUPPORTS会使mybatis缓存失效,一模一样的查询如下代码会查询两次数据库,去掉则只会查一次。

很想知道什么,请老师帮忙解答一下

@Transactional(propagation = Propagation.SUPPORTS, rollbackFor = Exception.class)
public Page<ContractLovReturnVO> testSupports(ContractQueryParamVO queryParam,
                                                                       PageRequest pageRequest) {
contractRepository.selectForLov(queryParam, pageRequest);
   return contractRepository.selectForLov(queryParam, pageRequest);
}


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
风间影月 2021-06-15 15:06:00

Mybatis缓存不用的,分布式会有问题,而且会有脏数据,禁用即可

  • 提问者 萨思给 #1

    好的,但是老师可以解答一下为什么偏偏是加了Propagation.SUPPORTS才会使缓存失效,我试了required和required_new或者不加缓存并没有失效呢,网上搜索和查看源码都没能找到答案

    2021-06-15 15:12:09
  • 风间影月 回复 提问者 萨思给 #2
    当前应该没有事务的吧,独立查询的吧,这样每一次都是新的
    2021-06-15 15:19:10
  • 提问者 萨思给 回复 风间影月 #3

    但是他和不加事务不一样,不加事务也没有事务,但是不加事务缓存没有失效呢

    2021-06-15 15:59:02
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师