Встречается на собеседованиях • сегодня
Откроется ли новая транзакция, если из одного транзакционного метода вызвать другой в разных сервисах
Нет, если оба метода используют одну и ту же транзакцию (например, @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() {
// новая транзакция
}
}
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы