嗝屁小孩纸 2023-02-04 12:01 采纳率: 80.8%
浏览 16
已结题

mybatis一级缓存失效问题,用不了呀,如何解决?(语言-java)

  • 我在开发web时用到springboot整合mybatis后,发现每个功能查询基本都是一次事务查询,事务也就是会话对吧,相对于mybatis来说就是一次sqlSession查询,所以这个功能多次查询也不会命中同一个会话吧。

  • 从日志得知每次查询不是同一个sqlsession实例。

  • 所以我这个mybatis一级缓存貌似一直没有用到。
    也不可能开启二级缓存,副作用太大了,就想问问,同一个查询不能共用同一个sqlSession嘛,这样既能减少sqlsession创建和销毁,还能用到一级缓存。

  • 写回答

2条回答 默认 最新

  • 皮蛋不吃粥 2023-02-04 15:42
    关注

    如果是在一次会话多次查询 可能会用到一级缓存 但是有前提要求SQL完全一样,当然如果SqlSession调用了close(),clearCache(),或者执行CUD操作都会释放缓存,导致不生效,这是Mybatis原本的一级缓存,但是SpringBoot在集成的时候,如用的Mybatis的启动依赖,他的每次执行完SQL都会释放SqlSession中的缓存,所以SpringBoot集成的不会用到一级缓存,当然一种情况例外,就是开启了事务,事务开启后同事务下SpringBoot会从TheadLocal获取SqlSession,从而使一级缓存生效。

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

报告相同问题?

问题事件

  • 系统已结题 2月17日
  • 已采纳回答 2月9日
  • 创建了问题 2月4日

悬赏问题

  • ¥15 对于这个复杂问题的解释说明
  • ¥50 三种调度算法报错 采用的你的方案
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败