Ręczne transakcje w Springu

Wątek przeniesiony 2022-06-17 14:58 z Inżynieria oprogramowania przez somekind.

1

Czy da się w Springu ręcznie zarządzać transakcjami? Chodzi mi o nieużywanie @Transactional tylko jakiegoś EntityManagera z getTransacion(), commit() itd.

2

Niezła patologia. Na szybko to nawet nie da się zgooglać materiałów o JPA bez Springa. W starym dobrym Hibernate można było ręcznie utworzyć transakcje. Możliwe że dalej jest to możliwe jak wyciągniesz obiekt sesji. Dla interfejsu JPA nie umiem tego znaleźć

3

Transakcjami zajmuje się TransactionManager, którego spring przykrywa swoją magią i nie ważne czy @deklaratywnie czy programowo, to i tak rafia do TransactionManagera.

Szybkie google: https://www.marcobehler.com/guides/spring-transaction-management-transactional-in-depth

3
KamilAdam napisał(a):

Niezła patologia. Na szybko to nawet nie da się zgooglać materiałów o JPA bez Springa.

To słabo szukasz, 3 wynik.
No i jak wyżej, polecam korzystać z TransactionTemplate. Jest łatwy w użyciu, a dodatkowo obsługuje nie tylko JPA.

1

Tak jak napisał @yarel i @scibi_92 - Spring trzyma wszelkiego rodzaju obiekty typu EntityManager czy TransactionManager w kontekście - wystarczy wyciągnąć BeanFactory i wylistować. Nie dla osób o słabych nerwach ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.