Вопрос на собеседовании · Java-разработчик

Как работает @Transactional и в каких случаях он молча не работает?

Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.

Обновлено 10 августа 2026 г.Встречается почти всегда
Короткий ответ

Обычно Spring реализует @Transactional через прокси: прокси перехватывает внешний вызов метода, открывает транзакцию, вызывает бизнес-код и затем делает commit или rollback. Поэтому важен не только факт аннотации, но и путь вызова метода.

Типичная ловушка — self-invocation: один метод класса напрямую вызывает другой метод того же объекта, и вызов не проходит через прокси. По умолчанию rollback обычно происходит для unchecked-исключений; правила для других исключений задают явно.

01 · Структура ответа

Что важно сказать интервьюеру

Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:

Граница транзакции должна охватывать целостную бизнес-операцию.
Внешние сетевые вызовы внутри транзакции увеличивают время удержания ресурсов.
Пойманное и скрытое исключение может привести к неожиданному commit.
Режим propagation определяет взаимодействие вложенных операций.

02 · Пример

Как объяснить на практике

Сервис сохраняет заказ и позиции заказа в одном публичном transactional-методе. Если сохранение позиции завершается ошибкой, вся операция откатывается. Отправку письма лучше вынести из транзакции через надёжное событие, а не ждать сеть с открытой транзакцией.

Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.

03 · Ошибки

Чего избегать в ответе

Считать, что аннотация работает при любом внутреннем вызове метода.
Держать транзакцию открытой во время медленного HTTP-вызова.
Не знать, какие исключения приводят к rollback в текущей конфигурации.

04 · Углубление

Что могут спросить следом

  1. Что такое propagation REQUIRES_NEW?
  2. Какой уровень изоляции используется?
  3. Почему private-метод с аннотацией может не сработать?

Практика ответа

Ответьте вслух, а не про себя

Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.

Потренировать ответ