Kombinacja hibernacji @ Transakcyjna i ehcache @Cacheable zawsze tworzy transakcję DB

Podczas wykonywania testu obciążenia w naszej aplikacji zauważyłem, że jeśli użyjesz adnotacji @ Transactional i @Cacheable, hibernacja zawsze tworzy transakcję bazy danych. Czy istnieje prosty sposób, aby temu zapobiec? Bardziej eliptycznym sposobem rozwiązania tego problemu na wiosnę jest posiadanie następujących klas / interfejsów

Interfejs serwowzmacniaczaCacheable klasa z adnotacjami, która jest tylko proxy / przekazuje dalejKlasa implementacji adnotacji transakcyjnych

Oto co się dzieje

Zadzwoń 1:

Transakcja zostanie utworzonawywoływana jest metoda klasywynik buforowany i zwrócony

Zadzwoń 2:

Transakcja zostanie utworzonaWynik buforowany jest zwracany

Preferowanym wynikiem powinno być:

Zadzwoń 1:

Transakcja zostanie utworzonawywoływana jest metoda klasywynik buforowany i zwrócony

Zadzwoń 2:

Wynik buforowany jest zwracany

questionAnswers(1)

yourAnswerToTheQuestion