Przejdź do treści

Jak działa adnotacja @Transactional w Springu

Użycie adnotacji @Transactional stało się na tyle powszechne, że często nie wiemy, po co to robimy. Transakcje w Springu są dostarczone domyślnie i jako użytkownicy frameworka nie martwimy się jak działają pod spodem. Zdarza się jednak, że niewiedza działa na naszą niekorzyść i nie inaczej jest w tym przypadku. Transakcje są czymś niewidocznym. Niby wiemy jak to działa, lub powinno działać, ale mimo wszystko gdzieś tam pod spodem dzieje się coś nieznanego. W tym artykule przybliżymy i odkryjemy to nieznane.

4.8 20 votes
Article Rating
Tagi:
Subscribe
Powiadom o
guest
6 komentarzy
najnowszy
najstarszy oceniany
Inline Feedbacks
View all comments
Bartosz
Bartosz
2 miesięcy temu
Zapisze zadanie do bazy czy nie?" Czytaj więcej »

Wydaję mi się, że checked exception zepsuję transakcje i zmiany nie zostaną zapisanet

dd
dd
1 rok temu
Zapisze zadanie do bazy czy nie?" Czytaj więcej »

nie

trackback

[…] chcesz dowiedzieć się więcej na temat różnych typów propagacji transakcji to zapraszam w to miejsce. Bartek przechodzi po każdym dostępnym rodzaju i wyjaśnia go w skondensowanej formie. Mam […]

Wojtek
Wojtek
2 lat temu

Musi być spełniony jeszcze jeden warunek, o którym nie napisałeś – metoda oznaczona jako @Transactional musi być wołana z innego beana springowego, bez tego nie zadziała.

Last edited 2 lat temu by Wojtek
Szymon
Szymon
2 lat temu
Reply to  Wojtek

Wojtek, dzięki za komentarz. To jest bardzo ważna rzecz, aktualnie refactoruję fragment kodu z transakcją i dziwie się, że wywołanie z tego samego beana sprawia, że nie mam sesji Hibernate.

Krzysztof
7 miesięcy temu
Reply to  Szymon

Formalnie faktycznie warto o tym wspomnieć, tak jak zrobiłeś ale fakt w jaki jest to zrobione nie jako to implikuje, ponieważ tylko dla wołania jako z beana działają w ogóle apsekty.

6
0
Would love your thoughts, please comment.x