是否可以引用Mybatis中的现有缓存

时间:2016-02-10 06:10:23

标签: mybatis ibatis spring-mybatis

  <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的结果在真实DB中是20。然后我在10分钟后调用getStoreIdAndEqId然后我希望得到数据为20,因为我已经第一次加载了整个数据而没有发生,而getWholeData有20条记录getStoreIdAndEqId返回新数据当时可能是25,无论它是否仍然在缓存之后。当我在第一个地方调用getStoreIdAndEqId它不应该查询数据库时它是不可能的,它应该从getWholeData缓存查询并返回20而不是新的25。

0 个答案:

没有答案