Die Kombination aus Ruhezustand @Transactional & ehcache @Cacheable erstellt immer eine DB-Transaktion
Beim Testen der Auslastung unserer Anwendung ist mir aufgefallen, dass bei Verwendung der Annotionen @Transactional und @Cacheable im Ruhezustand immer eine Datenbanktransaktion erstellt wird. Gibt es eine einfache Möglichkeit, dies zu verhindern? Eine aufwändigere Möglichkeit, dies innerhalb des Frühlings zu lösen, besteht darin, folgende Klassen / Schnittstellen zu haben
Servicelayer-SchnittstelleCacheable annotierte Klasse, die nur ein Proxy / eine Weiterleitung an istImplementierungsklasse für TransaktionsanmerkungenWas passiert, ist das Folgende
Anruf 1:
Transaktion wird erstelltKlassenmethode wird aufgerufenErgebnis zwischengespeichert und zurückgegebenAnruf 2:
Transaktion wird erstelltDas zwischengespeicherte Ergebnis wird zurückgegebenDas bevorzugte Ergebnis sollte sein:
Anruf 1:
Transaktion wird erstelltKlassenmethode wird aufgerufenErgebnis zwischengespeichert und zurückgegebenAnruf 2:
Das zwischengespeicherte Ergebnis wird zurückgegeben