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 transakcyjnychOto co się dzieje
Zadzwoń 1:
Transakcja zostanie utworzonawywoływana jest metoda klasywynik buforowany i zwróconyZadzwoń 2:
Transakcja zostanie utworzonaWynik buforowany jest zwracanyPreferowanym wynikiem powinno być:
Zadzwoń 1:
Transakcja zostanie utworzonawywoływana jest metoda klasywynik buforowany i zwróconyZadzwoń 2:
Wynik buforowany jest zwracany