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

Что случится с методом если не обернуть его аннотацией Transactional

Метод без @Transactional выполнится вне контекста транзакции. Это значит:

  • Каждый SQL-запрос будет выполняться в авто-коммит режиме (как отдельная транзакция)
  • Невозможно откатить изменения при ошибке
  • Нет управления уровнем изоляции
  • Нет гарантий согласованности данных при нескольких операциях

Пример:

java
// Без @Transactional
public void transferMoney(Account from, Account to, BigDecimal amount) {
    from.debit(amount);  // авто-коммит
    to.credit(amount);   // авто-коммит
    // Если здесь произойдет ошибка - деньги уже спишутся с from
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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