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

Откроется ли новая транзакция, если из одного транзакционного метода вызвать другой в разных сервисах

Нет, если оба метода используют одну и ту же транзакцию (например, @Transactional(propagation = Propagation.REQUIRED) по умолчанию). Транзакция будет существовать в рамках одного контекста.

Если же во втором методе указано @Transactional(propagation = Propagation.REQUIRES_NEW), то создастся новая транзакция, приостанавливая текущую.

Пример:

java
@Service
class ServiceA {
    @Transactional
    void methodA() {
        serviceB.methodB(); // зависит от propagation
    }
}

@Service
class ServiceB {
    @Transactional(propagation = Propagation.REQUIRES_NEW)
    void methodB() { 
        // новая транзакция
    }
}
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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