Sobes.tech
Junior — Middle

Hogyan működik az @Transactional annotáció, és milyen mechanizmusokat használ a tranzakciós integritás biztosítására?

sobes.tech MI

Válasz az MI-től

A @Transactional annotáció Java-ban (általában a Spring Framework-ben) arra szolgál, hogy módszereket vagy osztályokat jelöljön, amelyek tranzakció keretében kell, hogy végrehajtódjanak.

Ez biztosítja:

  • Automatikus tranzakcióindítást a módszerbe lépéskor.
  • A tranzakció megerősítését sikeres befejezés esetén.
  • A tranzakció visszavonását kivételek esetén.

A használt mechanizmusok:

  • Proxy-k (dinamikus vagy CGLIB) elfogják a módszerhívásokat.
  • A tranzakciókezelő (PlatformTransactionManager) kezeli a tranzakció életciklusát.

Példa:

@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // ha itt RuntimeException keletkezik, a tranzakció visszavonódik
    }
}

Így a @Transactional garantálja az adatok integritását, automatikusan kezeli a tranzakciókat anélkül, hogy explicit kódot kellene írni a kezdéshez, megerősítéshez vagy visszavonáshoz.