Combination hibernate @Transactional & ehcache @Cacheable always creates DB transaction
annotations, ehcache, hibernate, spring
Solution
You need to change relative order of `@Transactional` and `@Cacheable` aspects.
It can be configured using `order` attribute of `<tx:annotation-driven>` and `<cache:annotation-driven>`. See 8.2.4.7 Advice ordering for the meaning of order values.
Problem
While doing loadtesting on our application I noticed that if you use @Transactional and @Cacheable annotions that hibernate always creates a database transaction. Is there an easy way to prevent this? A more eleberate way to solve this within spring is to have following class/interfaces - Servicelayer-interface - Cacheable annotated class which is just a proxy/forward to - Transactional annotation implentation class What happens is the following Call 1: - Transaction gets created - class method gets called - result cached & returned Call 2: - Transaction gets created - Cached result gets returned The prefered result should be: Call 1: - Transaction gets created - class method gets called - result cached & returned Call 2: - Cached result gets returned