Настраивается ли размер и срок действия кэша запросов Hibernate? - PullRequest
0 голосов
/ 09 октября 2019

В веб-приложении я настроил в 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>

Но как насчет кэша запросов? Сколько разных запросов хранится? Как долго до истечения срока действия?

Я настраиваю это и хочу синхронизировать кэш второго уровня и срок действия кеша запросов, но как? Спасибо в аванс.

1 Ответ

1 голос
/ 10 октября 2019

По умолчанию имя кеша запросов равно org.hibernate.cache.StandardQueryCache.

Таким образом, вы можете добавить такую ​​запись:

<cache name="org.hibernate.cache.StandardQueryCache"
    ...
    timeToIdleSeconds=...        
    timeToLiveSeconds=...>
        <persistence strategy="localTempSwap"/>
</cache>
...