Junior — Middle
Wyjaśnij zasadę działania adnotacji @Transactional i jej rolę w zarządzaniu transakcjami w bazie danych.
sobes.tech AI
Odpowiedź od AI
Adnotacja @Transactional w Javie (zazwyczaj w Spring Framework) służy do zarządzania transakcjami bazy danych na poziomie metod lub klas.
Zasada działania:
- Po wywołaniu metody z
@Transactionaltworzona jest nowa transakcja lub używana jest istniejąca. - Wszystkie operacje na bazie danych wewnątrz tej metody są wykonywane w ramach tej transakcji.
- Jeśli metoda zakończy się pomyślnie, transakcja jest zatwierdzana (zmiany są zapisywane).
- Jeśli wystąpi wyjątek (zazwyczaj unchecked), transakcja jest wycofywana, a wszystkie zmiany cofnięte.
To pozwala zagwarantować integralność danych i spójność stanu bazy, szczególnie przy wykonywaniu wielu powiązanych operacji.
Przykład:
@Service
public class UserService {
@Transactional
public void createUserAndProfile(User user, Profile profile) {
userRepository.save(user);
profileRepository.save(profile);
// Jeśli tutaj wystąpi wyjątek, oba zapisy zostaną cofnięte
}
}
W ten sposób @Transactional upraszcza zarządzanie transakcjami i pomaga unikać błędów związanych z częściowym wykonaniem operacji.