ehcache - 永久缓存

时间:2016-05-12 20:49:11

标签: java ehcache mybatis

我是Ehcache的初学者。

我正在尝试通过mybatis xml缓存SQL查询结果,而ehcache正在使用其结果缓存查询,但是一旦操作完成,即使运行相同的JVM实例,它也会清除缓存的数据。

任何人都可以建议如何将缓存存储在磁盘/内存中,直到JVM终止?

<cache type="org.mybatis.caches.ehcache.EhcacheCache"> <property name="eternal" value="false" /> <property name="maxElementsInMemory" value="100000" /> <property name="timeToIdleSeconds" value="3600" /> <property name="timeToLiveSeconds" value="3600" /> <property name="memoryStoreEvictionPolicy" value="LFU" /> <property name="statistics" value="true" /> </cache>

的代码段
msExchRecipientTypeDetails

.....

3 个答案:

答案 0 :(得分:0)

您要找的是Ehcache Persistence

答案 1 :(得分:0)

不是MyBatis - Ehcache桥的专家。但是,从您的配置示例中,假设您永远不想要到期,请执行以下更改:

  • eternal属性设置为true
  • 删除两个timeToXXX属性

这将确保永远不会触发到期。请注意,缓存仍然可以逐出控制资源消耗。

答案 2 :(得分:0)

为了解决这个问题,我们需要在mapper.xml中明确提到以下属性 1)useCache =&#34; true&#34;和flushCache =&#34; false&#34;用于选择操作 2)flushCache =&#34; false&#34;对于所有插入/更新/删除操作

示例代码段: -

<select id="getTestData" parameterType="map" resultMap="testDtls"  useCache="true" flushCache="false" >

<insert id="insertTestData" parameterType="map" flushCache="false" >