Junior — Middle
Jak funguje anotace @Transactional a jaké mechanismy používá k zajištění transakční integrity?
sobes.tech AI
Odpověď od AI
Anotace @Transactional v Javě (obvykle ve Spring Frameworku) se používá k označení metod nebo tříd, které mají být prováděny v rámci transakce.
Zajišťuje:
- Automatické zahájení transakce při vstupu do metody.
- Potvrzení transakce při úspěšném dokončení.
- Vrácení transakce při výskytu výjimek.
Používané mechanismy:
- Proxy (dynamické nebo CGLIB) zachytávají volání metod.
- Správce transakcí (
PlatformTransactionManager) řídí životní cyklus transakce.
Příklad:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// pokud zde dojde k vyhození RuntimeException, transakce bude vrácena zpět
}
}
Tímto způsobem @Transactional zajišťuje integritu dat, automaticky spravuje transakce bez nutnosti psaní explicitního kódu pro začátek, potvrzení nebo vrácení.