问题描述

在插入分类的时候需要先查看该分类是否存在,若不存在则插入,第一次查找是该分类不存在,进行插入操作,在插入操作之后再一次遇到该分类时,执行查找操作,发现此时查找语句不起作用,有将该分类插入一次。

原因

mybatis有一级缓存和二级缓存,mybatis对查询的语句会存在一级缓存中,如果在一个事务中,mybatis对同一个session多次查询同一个sql语句就会去找缓存而不是再去查一次数据库。

解决方法

在xml文件 select语句添加 flushCache=“true” ,告诉mybatis查询结束后刷新缓存,不记录查询结果到一级缓存中

<select id="pageListCount" resultType="int" flushCache="true">
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐