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

Какие знаешь причины отмены транзакции в Spring

В Spring транзакции могут отменяться (rollback) по нескольким причинам:

  1. Unchecked исключения (наследники RuntimeException) - по умолчанию вызывают откат
  2. Помеченные исключения - через @Transactional(rollbackFor = MyException.class)
  3. Явный вызов TransactionAspectSupport.currentTransactionStatus().setRollbackOnly()
  4. Таймаут - если транзакция превышает @Transactional(timeout = 5)
  5. Deadlock - при обнаружении взаимоблокировки СУБД

Пример:

java
@Transactional(rollbackFor = BusinessException.class)
public void process() {
    try {
        // бизнес-логика
    } catch (DataAccessException ex) {
        // вызовет rollback, т.к. DataAccessException - RuntimeException
        throw new BusinessException("Ошибка", ex);
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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