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