2008-09-10 11 views
7

¿Cuáles son los pasos necesarios para habilitar la memoria caché de segundo nivel de Hibernate, cuando se utiliza la API Java Persistence (entidades anotadas)? ¿Cómo compruebo que está funcionando? Estoy usando JBoss 4.2.2.GA.Habilitación de la memoria caché de segundo nivel de Hibernate con JPA en JBoss 4.2

De la documentación de Hibernate, parece que necesito para que el caché y especificar un proveedor de memoria caché en persistence.xml, como:

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

¿Qué más se necesita? ¿Debo agregar anotaciones @Cache a mis entidades JPA?

¿Cómo puedo saber si la memoria caché está funcionando? He intentado acceder a las estadísticas de caché después de ejecutar una consulta, pero Statistics.getSecondLevelCacheStatistics devuelve nulo, tal vez porque no sé qué nombre de 'región' usar.

Respuesta

3

Creo que necesita agregar las anotaciones de la caché para indicarle a hibernate cómo usar la memoria caché de segundo nivel (solo lectura, lectura-escritura, etc.). Este fue el caso en mi aplicación (utilizando spring/hibernate tradicional y ehcache, por lo que su kilometraje puede variar). Una vez que se indicaron las cachés, comencé a ver mensajes que estaban en uso desde la hibernación.

4

Seguimiento: al final, después de añadir anotaciones, tengo que trabajar con Ehcache, es decir

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

Tenga en cuenta que en Hibernate 3.3+, este parámetro es ahora hibernate.cache.region.factory_class y no lo que está arriba. Agregando esto para la posteridad;) –

Cuestiones relacionadas