Встречается на 7% собеседований по Java

Как работает аннотация @Transactional

Аннотация @Transactional управляет транзакциями в Spring. Она указывает, что метод должен выполняться в рамках транзакции. Если метод завершается успешно, транзакция коммитится, при исключении — откатывается.

Основные параметры:

  • propagation — определяет поведение при наличии существующей транзакции (например, REQUIRED, REQUIRES_NEW)
  • isolation — уровень изоляции (например, READ_COMMITTED)
  • rollbackFor — исключения, вызывающие откат
  • readOnly — оптимизация для операций чтения

Пример:

java
@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        // Логика сохранения пользователя
    }
}

Важно:

  • Работает только на public-методах (из-за проксирования)
  • По умолчанию откатывает только на unchecked исключениях
  • Может применяться на уровне класса (все методы будут транзакционными)

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы