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 поједностављује управљање транзацијама и помаже у избегавању грешака везаних за делимично извршење операција.