2008-09-10 2 views
7

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

Из документации 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 возвращает null, возможно, потому, что я не знаю, какое имя региона использовать.

ответ

3

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

4

Последующая деятельность: в конце концов, после добавления аннотаций, у меня он работает с Ehcache, т.е.

<property name="hibernate.cache.provider_class" 
      value="net.sf.ehcache.hibernate.EhCacheProvider" /> 
+1

Обратите внимание, что в Hibernate 3.3+, этот параметр является теперь hibernate.cache.region.factory_class и не что выше. Добавление этого для потомков;) – 2011-01-05 20:42:02

Смежные вопросы