Estoy trabajando con un proyecto de primavera que usa hibernate y busco implementar caché de segundo nivel usando ehcache. Veo una serie de enfoques para esto:Spring: hibernate + ehcache
spring-modules-cache
que introduce el@Cacheable
anotaciónehcache-spring-annotations
un conjunto de herramientas que pretende ser el sucesor despring-modules-cache
.Hibernate cache
está muy bien integrado en la hibernación para realizar el almacenamiento en caché utilizando, por ejemplo, la anotación@Cache
.Programmatic cache
utilizando proxies. config basada en anotaciones rápidamente se convierte en limitada o compleja (por ejemplo, varios niveles de anidamiento de anotación)
Personalmente no creo spring-modules-cache
es lo suficientemente completa, por lo tanto, que probablemente preferiría tener en cuenta la forma más activa desarrollado ehcache-spring-annotations
. Hibernate cache
aunque parece ser la implementación más completa (por ejemplo, caché de lectura y escritura, etc.).
¿Qué motivaría qué conjunto de herramientas usar? Por favor comparta su experiencia de almacenamiento en caché ...
Genial, ¿cómo te está resultando eso, satisfactorio? Después de probar las opciones 1 y 2, siento que todavía son bastante limitadas y no tan concisas como me gustaría. –
Nuestra experiencia en la configuración de Hibernate y Ehcache fue relativamente sencilla hasta que habilitamos la replicación de memoria caché RMI sincrónica en nuestro clúster. Cuando está habilitado, Hibernate comenzó a lanzar excepciones raras. Para resolver estas excepciones, habilitamos 'hibernate.cache.use_structured_entries'. Las versiones posteriores de Hibernate pueden no tener este problema, pero cuando estábamos tratando de resolver este problema, nuestro entorno no era compatible con Hibernate 3.5.6. –
documenté esta experiencia en http://stackoverflow.com/questions/3631349/how-do-i-cure-the-cause-of-hibernate-exception-illegalargumentexception-occurred. –