mybatis緩存問題致使沒法查詢到數據

###今天查詢記錄時,發現重複查詢結果時出現空記錄的狀況 web

###查看控制檯信息,只有紅色框選部分有進行查詢數據,而其餘沒有。然而上圖可看出有兩條數據是能展示出來的,故有多是mybatis緩存命中的。 緩存

###所以在mapper文件中加入flushCache="true" useCache="false"mybatis

<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>

###問題解決 app

<font color=red size=12>總結:</font> ####(1) 當爲select語句時:3d

  • flushCache默認爲false,表示任什麼時候候語句被調用,都不會去清空本地緩存和二級緩存。code

  • useCache默認爲true,表示會將本條語句的結果進行二級緩存。blog

####(2) 當爲insert、update、delete語句時:it

  • flushCache默認爲true,表示任什麼時候候語句被調用,都會致使本地緩存和二級緩存被清空。io

  • useCache屬性在該狀況下沒有。class

相關文章
相關標籤/搜索