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

Работал ли с Propagation.NESTED в Spring

Propagation.NESTED создает вложенную транзакцию, которая может быть откачена независимо от основной, но фиксируется только при успешном завершении внешней транзакции. Работает только с JDBC-драйверами, поддерживающими savepoints (например, PostgreSQL, MySQL).

Пример:

java
@Transactional(propagation = Propagation.REQUIRED)
public void outerMethod() {
    // основной код
    nestedMethod();  // вызов вложенного метода
    // если здесь исключение - откатится всё
}

@Transactional(propagation = Propagation.NESTED)
public void nestedMethod() {
    // если здесь исключение - откатится только этот блок
    // но фиксация произойдет только после успеха outerMethod
}

Ключевые особенности:

  • Вложенная транзакция использует savepoint
  • Откат вложенной транзакции не влияет на внешнюю
  • Фиксация происходит только при успехе внешней транзакции
  • Не поддерживается в JPA/Hibernate (только для JDBC)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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