Запуск новой транзакции из транзакционного метода - PullRequest
0 голосов
/ 18 мая 2018

В настоящее время у меня есть контроллер, который вызывает @Transactional аннотированный метод в сервисе A, который вставляет объект в базу данных, а затем вызывает другой метод в сервисе B, который обновляет объект.

Я хотел бы вызвать только метод в службе A, который затем, в свою очередь, вызовет метод в службе B. Первая транзакция должна произойти в методе службы A, а другая транзакция должна произойти вметод службы B.

Я пытался понять аннотацию @Transactional, ее isolation и propagation, чтобы добиться этого, но я не мог заставить ее работать.

1 Ответ

0 голосов
/ 18 мая 2018

Если вы хотите отделить транзакцию в сервисе B от транзакции в сервисе A, то вам нужно начать новую транзакцию с помощью Propagation.REQUIRES_NEW.

Отметьте метод сервиса B с помощью:

@Transaction(propagation = Propagation.REQUIRES_NEW)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...