1
  <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,这不可能吗?

4

0 回答 0