Pregunta

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

Según la documentación de Hibernate, parece que necesito habilitar el caché y especificar un proveedor de caché en persistencia.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 requiere?¿Necesito agregar @Cache anotaciones a mis entidades JPA?

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

¿Fue útil?

Solución

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

Otros consejos

Hacer un seguimiento:al final, después de agregar anotaciones, lo tengo funcionando con EhCache, es decir.

<property name="hibernate.cache.provider_class" 
          value="net.sf.ehcache.hibernate.EhCacheProvider" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top