Hibernate segundo nivel de caché ehcache.xml, el ajuste de las entidades caché no se puede leer a Hibernate

StackOverflow https://stackoverflow.com/questions/934720

Pregunta

Para que sea más claro y fácil, tengo dos proyectos: 1. Un proyecto de la Entidad donde hay todas las clases de entidad en este proyecto. 2. Un proyecto que contiene una función main () para ejecutar la aplicación, Mi ehcache.xml se coloca en la ruta de clase de este proyecto.

Mi problema es: Puedo cambiar el defaultCache elemento de ehcache.xml y puedo ver los cambios del archivo de registro de SQL. Pero creo que la hibernación de sólo lectura mi elemento defaultCache , porque cualquier cosa que cambie en el caché de una entidad específica de ehcache.xml, no habrá ningún cambio en el registro de SQL.

Por ejemplo: Si fijo el maxElementsInMemory del elemento defaultCache a 0 , cualquiera que sea fijo el maxElementsInMemory del caché de una entidad a 100 o 0 , no habrá ninguna entidad que en caché en el caché de segundo nivel. Si fijo el maxElementsInMemory del elemento defaultCache a 100 , cualquiera que sea fijo el maxElementsInMemory del caché de una entidad a 100 o 0 , siempre hay que tener en caché entidad en el caché de segundo nivel.

Así que creo que tal vez el atributo de nombre de la caché de una entidad se establece erróneamente y no puede ser leído desde Hibernate?

¿Fue útil?

Solución

He encontrado que mi problema es. Estoy usando ehcache como proveedor de memoria caché. En el ehcache.xml, creo que el elemento defaultCache también se utiliza para todos los QueryCaches también, si no se estableció el elemento standardQueryCache. Así que no es importante o no fijo el maxElementsInMemory de a "0", porque todo el QueryCache están utilizando la región defaultCache. Pero el establecimiento de la maxElementsInMemory de "0" puede ayudar definitivamente a desactivar la caché de nivel sencond de esa entidad al utilizar EntityManager.find función ().

Otros consejos

Por favor, lea la documentación. En caso de ajuste de maxElementsInMemory, un valor de 0 tiene un significado especial - unlimited. Así que en vez de conseguir sin caché en absoluto, estás almacenamiento en caché de todo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top