问题描述
在插入分类的时候需要先查看该分类是否存在,若不存在则插入,第一次查找是该分类不存在,进行插入操作,在插入操作之后再一次遇到该分类时,执行查找操作,发现此时查找语句不起作用,有将该分类插入一次。
原因
mybatis有一级缓存和二级缓存,mybatis对查询的语句会存在一级缓存中,如果在一个事务中,mybatis对同一个session多次查询同一个sql语句就会去找缓存而不是再去查一次数据库。
解决方法
在xml文件 select语句添加 flushCache=“true” ,告诉mybatis查询结束后刷新缓存,不记录查询结果到一级缓存中
<select id="pageListCount" resultType="int" flushCache="true">