<mapper namespace="src.main.domain.EqMapper">
<cache
eviction="FIFO"
size="512"
readOnly="true"/>
<select id="getStoreIdAndEqId" resultType="String" flushCache="false" useCache="true">
select count(author) from blog
</select>
<select id="getWholeData" resultType="java.util.LinkedHashMap" flushCache="false" useCache="true">
select * from blog
</select>
</mapper>
场景:第一个我调用getWholeData
一次带来完整数据的方法。例如当时 select count(author) from blog
实际数据库中的结果是 20。然后我getStoreIdAndEqId
在 10 分钟后打电话,然后我希望得到 20 的数据,因为我第一次加载了整个数据,这没有发生,而getWholeData
有 20 条记录getStoreIdAndEqId
返回的新数据当时可能是 25,无论它之后是否保留在缓存中。当我getStoreIdAndEqId
第一次调用任何地方时,它不应该查询 db 而是应该从getWholeData
缓存中查询并返回 20 而不是新的 25,这不可能吗?