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