Spring Boot

Transakcje Spring

Zarządzanie transakcjami za pomocą @Transactional, propagation, isolation, rollback, PlatformTransactionManager

30 pytań z rozmów·
Senior
1

Jaka jest główna rola adnotacji @Transactional w Spring?

Odpowiedź

@Transactional wskazuje, że metoda powinna być wykonywana w kontekście transakcyjnym, zapewniając atomowość operacji bazodanowych. Spring automatycznie tworzy proxy AOP wokół klasy, aby obsługiwać rozpoczęcie, commit i rollback transakcji. To deklaratywne podejście znacznie upraszcza zarządzanie transakcjami w porównaniu z ręcznym programowaniem za pomocą TransactionTemplate lub PlatformTransactionManager.

2

Jaki jest domyślny typ propagation dla @Transactional?

Odpowiedź

Propagation.REQUIRED to domyślny typ propagation. Przy tej strategii Spring dołączy do istniejącej transakcji, jeśli taka istnieje, lub w przeciwnym razie utworzy nową. Jest to najczęstsze i najbardziej intuicyjne zachowanie dla większości przypadków użycia, gwarantujące, że transakcja jest zawsze obecna dla operacji bazodanowych.

3

Co się dzieje, gdy w metodzie @Transactional zostanie rzucony RuntimeException?

Odpowiedź

Domyślnie Spring automatycznie wykonuje rollback transakcji, gdy zostanie rzucony RuntimeException (lub Error). Gwarantuje to, że modyfikacje bazy danych zostaną cofnięte w przypadku nieoczekiwanych błędów. Z kolei wyjątki checked (dziedziczące po Exception, ale nie po RuntimeException) domyślnie nie wywołują rollbacku, chyba że zostaną jawnie określone za pomocą rollbackFor.

4

Gdzie można zastosować adnotację @Transactional?

5

Jakie zachowanie przyjmuje Propagation.REQUIRES_NEW?

+27 pytań z rozmów

Opanuj Spring Boot na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo