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

В чем особенность вызова метода из метода, когда оба метода @Transactional

Вызов @Transactional метода из другого @Transactional метода в Spring имеет важную особенность: по умолчанию транзакции не создаются повторно, а используется существующая. Это поведение определяется propagation (Propagation.REQUIRED по умолчанию).

Пример:

java
@Transactional
public void outerMethod() {
    innerMethod(); // Будет использовать ту же транзакцию
}

@Transactional
public void innerMethod() {
    // Логика
}

Нюансы:

  1. Если innerMethod выбросит исключение, вся транзакция откатится
  2. Можно изменить поведение через @Transactional(propagation = Propagation.REQUIRES_NEW)
  3. При self-invocation (вызов через this.innerMethod()) проксирование не работает - транзакция не создастся
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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