Hibernate запрос кеша укажите продолжительность кеша - PullRequest
1 голос
/ 09 марта 2010

ниже, как я делаю кеш запросов

   getHibernateTemplate().setCacheQueries(true);
   List<IssSection> result = (List<IssSection>) getHibernateTemplate().findByCriteria(crit);
   getHibernateTemplate().setCacheQueries(false);

Могу ли я узнать, как указать длительность максимального времени для кэширования этого метода? скажем, я хочу очистить кеш через 5 минут

Ответы [ 2 ]

4 голосов
/ 09 марта 2010

Hibernate не предоставляет интерфейс для управления такими особенностями кэша, как вы запрашиваете.

Вместо этого вам нужно выбрать реализацию кеша, которая обеспечивает эту функциональность, и настроить ее соответствующим образом.

например. Вы можете использовать EhCache и настроить его так:

<cache
    name="com.somecompany.someproject.domain.Country"
    maxElementsInMemory="10000"
    eternal="false"
    **timeToIdleSeconds="300"**
    **timeToLiveSeconds="600"**
    overflowToDisk="true"
/>

Два выделенных атрибута выше иллюстрируют, как вы можете настроить продолжительность кэшированного времени для кэшированных элементов.

2 голосов
/ 09 марта 2010

Могу ли я узнать, как указать длительность максимального времени для кэширования этого метода?

Вы должны будете выбрать поставщика кэша L2, поддерживающего срок действия (EHCache, OSCache, JCS) и настроить область кэша для этого конкретного запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...