Каким образом инициировать новую транзакцию внутри одного микро-сервиса?

В Java для управления транзакциями внутри одного микросервиса обычно используют аннотацию @Transactional из Spring Framework.

Короткий ответ

Что ответить на собеседовании

В Java для управления транзакциями внутри одного микросервиса обычно используют аннотацию @Transactional из Spring Framework. Чтобы инициировать новую транзакцию, можно пометить метод этой аннотацией. Если нужно начать новую транзакцию, независимо от текущей, используется параметр propagation = Propagation.REQUIRESNEW.

Подробный разбор

Ответ с пояснениями

В Java для управления транзакциями внутри одного микросервиса обычно используют аннотацию @Transactional из Spring Framework. Чтобы инициировать новую транзакцию, можно пометить метод этой аннотацией. Если нужно начать новую транзакцию, независимо от текущей, используется параметр propagation = Propagation.REQUIRES_NEW.

Пример:

import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Propagation;

public class MyService {

    @Transactional(propagation = Propagation.REQUIRES_NEW)
    public void startNewTransaction() {
        // код, выполняемый в новой транзакции
    }
}

Это гарантирует, что метод будет выполняться в отдельной транзакции, даже если вызывается из другого транзакционного контекста.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее