Включение Hibernate кэша второго уровня с помощью JPA на JBoss 4.2 - PullRequest
8 голосов
/ 10 сентября 2008

Какие шаги необходимы для включения кэша второго уровня Hibernate при использовании API-интерфейса Java Persistence (аннотированные объекты)? Как мне проверить, что это работает? Я использую JBoss 4.2.2.GA.

Из документации по Hibernate кажется, что мне нужно включить кеш и указать поставщика кеша в persistence.xml , например:

<property name="hibernate.cache.use_second_level_cache"
          value="true" /> 
<property name="hibernate.cache.provider_class" 
          value="org.hibernate.cache.HashtableCacheProvider" /> 

Что еще требуется? Нужно ли добавлять @ Cache аннотации к моим сущностям JPA?

Как узнать, работает ли кеш? Я пытался получить доступ к статистике кеша после выполнения запроса, но Statistics.getSecondLevelCacheStatistics возвращает ноль, возможно, потому что я не знаю, какое имя 'региона' использовать.

Ответы [ 2 ]

4 голосов
/ 10 сентября 2008

Продолжение: в конце, после добавления аннотаций, он работает с EhCache, т.е.

<property name="hibernate.cache.provider_class" 
          value="net.sf.ehcache.hibernate.EhCacheProvider" />
3 голосов
/ 10 сентября 2008

Полагаю, вам нужно добавить аннотации кеша, чтобы сообщить hibernate, как использовать кеш второго уровня (только для чтения, для чтения и записи и т. Д.). Это имело место в моем приложении (с использованием весеннего / традиционного спящего режима и ehcache, поэтому ваш пробег может отличаться). Как только кеши были указаны, я начал видеть сообщения об их использовании из спящего режима.

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