NAME-LI 2023-03-22 23:48 采纳率: 16.7%
浏览 34
已结题

SpringBoot 一个事务内执行两个同样的sql语句,第一次查询是存在数据的,第二次查询返回数据是空的。

这个是外部方法deliverOrderInfoList
在这个方法内执行了一个sql
List infoList = infoMapper.selectAllByOrderIdList(orderIdList);

img

然后在方法内部调用了createLogisticInfoBatch这个方法
createLogisticInfoBatch这个方法也执行了List infoList = infoMapper.selectAllByOrderIdList(orderIdList);这个查询语句

img

为什么第二次查询返回的数据是空的,第一次查询的数据是有的?

  • 写回答

3条回答 默认 最新

  • NAME-LI 2024-06-17 11:39
    关注

    Mybatis一级缓存,一个事务下,查询两次一样的sql,当查询条件一致时,会命中mybatis的一级缓存,这时候将不会查询数据库而直接返回缓存数据,提高性能

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月25日
  • 已采纳回答 6月17日
  • 创建了问题 3月22日

悬赏问题

  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开