Hibernate 查询缓存大小和过期时间可配置?
Hibernate query cache size and expiration configurable?
在一个 Web 应用程序中,我在 Hibernate 4.1.4 中配置了查询和二级缓存:
<!-- Cache -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="net.sf.ehcache.configurationResourceName">resources/ehcache.xml</property>
<property name="hibernate.cache.use_query_cache">true</property>
一切正常。在文件 ehcache.xml 中,我可以配置二级缓存的大小和分配:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="30000"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="false"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
但是查询缓存呢?存储了多少不同的查询?还有多久过期?
我正在调整这个,想同步二级缓存和查询缓存过期时间,但是如何?
提前致谢。
默认情况下查询缓存的名称是org.hibernate.cache.StandardQueryCache
。
所以你可以像这样添加一个条目:
<cache name="org.hibernate.cache.StandardQueryCache"
...
timeToIdleSeconds=...
timeToLiveSeconds=...>
<persistence strategy="localTempSwap"/>
</cache>
在一个 Web 应用程序中,我在 Hibernate 4.1.4 中配置了查询和二级缓存:
<!-- Cache -->
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<property name="net.sf.ehcache.configurationResourceName">resources/ehcache.xml</property>
<property name="hibernate.cache.use_query_cache">true</property>
一切正常。在文件 ehcache.xml 中,我可以配置二级缓存的大小和分配:
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="30000"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="false"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
但是查询缓存呢?存储了多少不同的查询?还有多久过期?
我正在调整这个,想同步二级缓存和查询缓存过期时间,但是如何? 提前致谢。
默认情况下查询缓存的名称是org.hibernate.cache.StandardQueryCache
。
所以你可以像这样添加一个条目:
<cache name="org.hibernate.cache.StandardQueryCache"
...
timeToIdleSeconds=...
timeToLiveSeconds=...>
<persistence strategy="localTempSwap"/>
</cache>