Hibernate & EHCache: как работает maxElementsInMemory?
Я настроил EHCache с defaultCache (для элементов), StandardQueryCache (для запросов) и UpdateTimestampsCache (поскольку я считаю, что нужно следить за обновлениями базы данных ... но я действительно не понимаю, что именно он делает).
Я установил maxElementsInMemory для каждого из этих кэшей, но я не получаю, что это число контролирует StandardQueryCache и UpdateTimestampsCache. Я получаю, что число объектов, которые могут быть кэшированы в кэше по умолчанию, не должно превышать 10000, но кэш запросов не кэширует элементы. Кеширует первичные ключи (насколько я понимаю).
Означает ли это, что maxElementsInMemory для StandardQueryCache контролирует количество «строк»? из результатов, или он контролирует количество пар первичных ключей для элементов, которые он может иметь?
А как насчет UpdateTimestampsCache? Отслеживает ли он последний раз, когда объект обновлялся, последний раз, когда таблица обновлялась ... или что-то еще? Какой номер я должен использовать для maxElementsInMemory для этого?
Спасибо!
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</defaultCache>
<cache
name="org.hibernate.cache.internal.StandardQueryCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</cache>
<cache
name="org.hibernate.cache.spi.UpdateTimestampsCache"
maxElementsInMemory="10000"
eternal="true">
</cache>
</ehcache>