10 lines
905 B
Markdown
10 lines
905 B
Markdown
#java #SpringBoot
|
||
|
||
Сценарий: У тебя есть OrderService с методом createOrder(), помеченным @Transactional.
|
||
Внутри он вызывает updateInventory() (тоже в OrderService и тоже с @Transactional).
|
||
Если updateInventory() выбрасывает runtime-исключение, что произойдет с транзакцией, начатой в createOrder()?
|
||
Как изменить дизайн, если нужно, чтобы оба метода выполнялись в отдельных, независимых транзакциях?
|
||
|
||
→
|
||
Транзакция не будет распространяться (прокси не сработает при внутреннем вызове).
|
||
Решение — self-injection (внедрение самого себя как зависимости) или использование AOP. |