Junior — Middle
Vysvětlete princip fungování anotace @Transactional a její roli v řízení transakcí v databázi.
sobes.tech AI
Odpověď od AI
Anotace @Transactional v Javě (obvykle ve Spring Frameworku) se používá k řízení databázových transakcí na úrovni metod nebo tříd.
Princip fungování:
- Při volání metody s
@Transactionalje vytvořena nová transakce nebo je použita existující. - Všechny operace s databází uvnitř této metody jsou prováděny v rámci této transakce.
- Pokud metoda úspěšně skončí, transakce je potvrzena (změny jsou uloženy).
- Pokud dojde k výjimce (obvykle unchecked), transakce je vrácena zpět a všechny změny jsou zrušeny.
Toto umožňuje zaručit integritu dat a konzistenci stavu databáze, zejména při provádění několika souvisejících operací.
Příklad:
@Service
public class UserService {
@Transactional
public void createUserAndProfile(User user, Profile profile) {
userRepository.save(user);
profileRepository.save(profile);
// Pokud dojde k výjimce zde, obě operace budou vráceny zpět
}
}
Tímto způsobem @Transactional zjednodušuje správu transakcí a pomáhá předcházet chybám spojeným s částečným provedením operací.