Встречается на собеседованиях • сегодня
Отменится ли транзакция при исключении в @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. Откат происходит при выходе из метода с исключением
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы