Sobes.tech
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í.