Sobes.tech
Junior — Middle

Објасните принцип рада анотације @Transactional и њену улогу у управљању трансакцијама у бази података.

sobes.tech АИ

Одговор од АИ

Анотација @Transactional у Јави (обично у Spring Framework-у) се користи за управљање транзакцијама базе података на нивоу метода или класа.

Принцип рада:

  • При позиву методе са @Transactional, креира се нова транзација или користи постојећа.
  • Све операције са базом података унутар те методе извршавају се у оквиру те транзације.
  • Ако метода успешно заврши, транзација се потврђује (промене се сачувају).
  • Ако се деси изузетак (обично unchecked), транзација се поништа и све промене се враћају.

Ово омогућава гаранцију интегритета података и конзистентности стања базе, посебно при извршавању више повезаних операција.

Пример:

@Service
public class UserService {

    @Transactional
    public void createUserAndProfile(User user, Profile profile) {
        userRepository.save(user);
        profileRepository.save(profile);
        // Ако овде дође до изузетка, оба чувања ће бити поништења
    }
}

Овим се @Transactional поједностављује управљање транзацијама и помаже у избегавању грешака везаних за делимично извршење операција.