Sobes.tech
Назад к вопросам
Junior — Middle
95

Объясните механизм действия аннотации @Transactional в Spring Framework и как она обеспечивает управление транзакциями.

Компании, где спрашивали
Stroki
СБЕРСБЕР
Альфа-БанкАльфа-Банк
AstonAston

Ответ от нейросети

sobes.tech AI

Аннотация @Transactional в Spring Framework используется для управления транзакциями на уровне методов или классов.

Механизм действия:

  • При вызове метода с @Transactional Spring создает прокси, который открывает транзакцию перед выполнением метода.
  • Если метод выполняется успешно, транзакция коммитится (сохраняются изменения).
  • Если во время выполнения возникает исключение (обычно RuntimeException), транзакция откатывается, отменяя все изменения.

Таким образом, @Transactional обеспечивает атомарность операций, гарантируя, что либо все изменения внутри метода применятся, либо ни одно не будет сохранено.

Пример:

@Service
public class UserService {

    @Transactional
    public void createUser(User user) {
        userRepository.save(user);
        // другие операции, которые должны быть в одной транзакции
    }
}