Встречается на собеседованиях • сегодня
Что произойдет при ошибке во время выполнения @Transactional метода
Если в методе с аннотацией @Transactional возникает необработанное исключение, транзакция будет откачена (rollback). По умолчанию это происходит для RuntimeException и Error. Для проверяемых исключений (checked exceptions) транзакция не откатывается автоматически.
Можно настроить поведение через параметры аннотации:
java
@Transactional(rollbackFor = Exception.class) // откат для всех исключений
@Transactional(noRollbackFor = NullPointerException.class) // не откатывать для NPEПример:
java
@Transactional
public void transferMoney(Account from, Account to, BigDecimal amount) {
from.withdraw(amount); // если здесь RuntimeException - транзакция откатится
to.deposit(amount);
}Важно: если исключение перехватывается внутри метода, транзакция не откатится. Для явного отката можно использовать TransactionAspectSupport.currentTransactionStatus().setRollbackOnly().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы