La combinación hibernate @Transactional & ehcache @Cacheable siempre crea una transacción DB
Mientras realizaba la prueba de carga en nuestra aplicación, noté que si utiliza las anotaciones @Transactional y @Cacheable que hibernan siempre se crea una transacción de base de datos. ¿Hay una manera fácil de prevenir esto? Una forma más segura de resolver esto dentro de Spring es tener las siguientes clases / interfaces
Interfaz de ServicelayerClase anotada en caché que es solo un proxy / reenviar aAnotación transaccional de la clase de implentación.Lo que pasa es lo siguiente
Llamada 1:
La transacción se creael método de clase se llamaresultado en caché y devueltoLlamada 2:
La transacción se creaResultado en caché se devuelveEl resultado preferido debe ser:
Llamada 1:
La transacción se creael método de clase se llamaresultado en caché y devueltoLlamada 2:
Resultado en caché se devuelve