Вопрос о пружинном распространении транзакции

У меня есть вопрос о пружинном распространении транзакции. Если я использую @Transactional (распространение = Распространение. ТРЕБУЕМЫЙ) для аннотирования метода m1. Когда логика выполнения вводит m1, если уже будет транзакция, то m1 будет использовать тот. Когда после m1, что относительно транзакции? Это заканчивается, или все еще откройтесь? (если я называю m1 в другом методе, и после вызова, там все еще другие вещи сделать).

Таким образом, я хочу знать при выходе из аннотируемого метода, концов транзакции или все еще открыться?

Большое спасибо.

10
задан skaffman 2 May 2010 в 16:58
поделиться

1 ответ

Propagation.REQUIRED (документировано здесь) создаст новую транзакцию (если таковой не существует для текущего потока), или присоединится к существующей транзакции (если таковая существует).

При выходе из метода транзакция будет завершена (если вход в метод вызвал создание транзакции), или транзакция останется открытой (если на момент входа в метод транзакция уже существовала). Другими словами, это симметрично, и транзакционное состояние потока останется в том же состоянии, в котором оно было до входа в метод.

20
ответ дан 3 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: