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

Сколько будет транзакций, если один метод с аннотацией Transactional вызывает другой с этой же аннотацией в разных классах в Spring

В Spring по умолчанию используется propagation REQUIRED, поэтому будет только одна транзакция. Внутренний метод присоединится к существующей транзакции внешнего метода.

Пример:

java
@Service
class ServiceA {
    @Transactional
    void methodA() {
        serviceB.methodB(); // Присоединяется к текущей транзакции
    }
}

@Service
class ServiceB {
    @Transactional
    void methodB() {
        // Работает в той же транзакции
    }
}

Исключение - если у внутреннего метода указана propagation REQUIRES_NEW, тогда создастся новая транзакция.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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