Встречается на собеседованиях • сегодня

Как работает метод с аннотацией Transactional

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

Ключевые моменты:

  • Работает через AOP (прокси-объекты).
  • По умолчанию: propagation = REQUIRED (использует текущую транзакцию или создаёт новую).
  • rollbackFor определяет, какие исключения вызывают откат.

Пример:

java
@Transactional
public void transferMoney(Account from, Account to, BigDecimal amount) {
    from.debit(amount);
    to.credit(amount);
    // При RuntimeException транзакция откатится
}

Нюансы:

  • При вызове из одного @Transactional-метода другой в том же классе — аннотация не сработает (проблема self-invocation).
  • Для чтения можно использовать @Transactional(readOnly = true).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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