码迷,mamicode.com
首页 > 其他好文 > 详细

mybatis缓存问题导致无法查询到数据

时间:2018-08-04 11:52:52      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:pen   web   tis   重复   记录   reac   sel   png   delete   

今天查询记录时,发现重复查询结果时出现空记录的情况

技术分享图片

查看控制台信息,只有红色框选部分有进行查询数据,而其他没有。然而上图可看出有两条数据是能展现出来的,故有可能是mybatis缓存命中的。

技术分享图片

因此在mapper文件中加入flushCache="true" useCache="false"

<select id="querySuppliers"  flushCache="true" useCache="false"  resultType="cn.com.ebidding.web.yzPurchaseMain.dao.model.QueryYzResultModel">
        select t1.id id,t2.company_name name
        from lib_suppliers t1, sys_company t2
        where t1.is_deleted = ‘0‘
        and t2.is_deleted = ‘0‘
        and t1.company_id = t2.id
        and t1.agent_id = #{agentId}
        and t1.id in
        <foreach item="item" index="index" collection="ids" open="(" separator="," close=")">
        #{item}
        </foreach>
    </select>

问题解决

技术分享图片

总结:

(1) 当为select语句时:

  • flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。

  • useCache默认为true,表示会将本条语句的结果进行二级缓存。

(2) 当为insert、update、delete语句时:

  • flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。

  • useCache属性在该情况下没有。

mybatis缓存问题导致无法查询到数据

标签:pen   web   tis   重复   记录   reac   sel   png   delete   

原文地址:https://www.cnblogs.com/peterpoker/p/9417086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!