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

Отменится ли транзакция при исключении в @Transactional методе

Да, транзакция откатится при необработанном исключении в методе с @Transactional. По умолчанию откат происходит для RuntimeException и Error. Можно настроить поведение через параметры аннотации:

java
@Transactional(rollbackFor = Exception.class) // откат для всех исключений
public void updateData() throws Exception {
    // код, который может выбросить checked исключение
}

@Transactional(noRollbackFor = NullPointerException.class) // не откатывать для NPE
public void process() {
// код
}

text

Важные моменты:
1. Откат работает только для публичных методов
2. Вызов из одного `@Transactional` метода в другой в том же классе не создаст новую транзакцию (проблема self-invocation)
3. Откат происходит при выходе из метода с исключением
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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