hibernate grails ehcache default-value

hibernate - Valores predeterminados de EHCache en una aplicación Grails 1.3.9



default-value (1)

Grails buscará un ehcache.xml en el directorio conf. Si no se encuentra, usará el que está en su classpath, eche un vistazo al ehcache-core.jar. Verás un archivo llamado ehcache-failsafe.xml donde encontrarás:

<defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" maxElementsOnDisk="10000000" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" />

Para hacer uso de la memoria caché de consultas, debe haber configurado en su Datasource.groovy:

hibernate { cache.use_second_level_cache=true cache.use_query_cache=true cache.provider_class=''org.hibernate.cache.EhCacheProvider'' }

Aunque, como señaló @GreyBeardedGeek, EhCache es un caché de escritura simultánea. Solo almacenará en caché los objetos que se manipulan a través de hibernación y su caché de segundo nivel. Si escribe una consulta sql en su base de datos, no almacenará en caché objetos en su caché.

Para entenderlo más profundamente, échale un vistazo aquí y aquí .

¿Cuáles son los valores predeterminados de ehcache en una aplicación Grails 1.3.9? En particular, estoy interesado en el valor de la caché de consultas; Eliminé un par de filas a través de postgres ''psql y no veo los cambios reflejados en mi aplicación. No he agregado el archivo ehcache.xml al directorio conf. Incluso reinicié la aplicación Grails y los datos aún aparecen en el informe. ¿No hay ningún archivo de caché que pueda eliminar como solución alternativa?

actualización: agregué el siguiente archivo de configuración ehcache.xml:

<?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" > <diskStore path="/tmp/ehcache_t2"/> <cacheManagerEventListenerFactory class="" properties=""/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToLiveSeconds="120"> </defaultCache> <cache name="org.hibernate.cache.UpdateTimestampsCache" maxElementsInMemory="10000" timeToIdleSeconds="300" /> <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="10000" timeToIdleSeconds="30" /> </ehcache>

Pero el tiempo de StandardQueryCacheToIdleSeconds = "30" tampoco funciona.