我是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
.....
答案 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" >