Назад к вопросам
Middle+
4
У нас класс, в нём два метода. Над каждым стоит @Transactional propagation REQUIRES_NEW, и мы из первого метода вызываем второй. Сколько транзакций откроется?
Компании, где спрашивали
AmexDev
Ответ от нейросети
sobes.tech AI
При использовании аннотации @Transactional с propagation = REQUIRES_NEW каждый метод будет выполняться в своей отдельной транзакции. Когда первый метод вызывается, открывается первая транзакция. При вызове второго метода из первого текущая транзакция приостанавливается, и открывается новая транзакция для второго метода. После завершения второго метода вторая транзакция закрывается, и первая возобновляется.
Итого, откроется 2 транзакции: одна для первого метода и одна для второго.
Пример:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodOne() {
// транзакция 1
methodTwo(); // вызов второго метода
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodTwo() {
// транзакция 2
}