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