Sobes.tech
Junior — Middle

Kako funkcioniše anotacija @Transactional i koje mehanizme koristi za obezbeđivanje transakcione celokupnosti?

sobes.tech АИ

Одговор од АИ

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

Она обезбеђује:

  • Аутоматско почетак трансакције при уласку у метод.
  • Потврду трансакције при успешном завршетку.
  • Повлачење трансакције у случају изузетака.

Механизми који се користе су:

  • Проксии (динамички или CGLIB) пресрећу позиве метода.
  • Менџер трансакција (PlatformTransactionManager) управља животним циклусом трансакције.

Пример:

@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // ако овде дође до RuntimeException, трансакција ће бити повучена
    }
}

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