Junior — Middle
Обяснете механизма на действие на аннотацията @Transactional в Spring Framework и как тя осигурява управление на транзакциите.
sobes.tech AI
Отговор от AI
Аннотация @Transactional в Spring Framework используется для управления транзакциями на уровне методов или классов.
Механизм действия:
- При вызове метода с @Transactional Spring создает прокси, который открывает транзакцию перед выполнением метода.
- Если метод выполняется успешно, транзакция коммитится (сохраняются изменения).
- Если во время выполнения возникает исключение (обычно RuntimeException), транзакция откатывается, отменяя все изменения.
Таким образом, @Transactional обеспечивает атомарность операций, гарантируя, что либо все изменения внутри метода применятся, либо ни одно не будет сохранено.
Пример:
@Service
public class UserService {
@Transactional
public void createUser(User user) {
userRepository.save(user);
// другие операции, которые должны быть в одной транзакции
}
}