Files
obsidian/Prog/Распространение транзакций.md
T
2026-09-24 13:22:58 +05:00

905 B
Raw Blame History

#java #SpringBoot

Сценарий: У тебя есть OrderService с методом createOrder(), помеченным @Transactional. Внутри он вызывает updateInventory() (тоже в OrderService и тоже с @Transactional). Если updateInventory() выбрасывает runtime-исключение, что произойдет с транзакцией, начатой в createOrder()? Как изменить дизайн, если нужно, чтобы оба метода выполнялись в отдельных, независимых транзакциях?

→ Транзакция не будет распространяться (прокси не сработает при внутреннем вызове). Решение — self-injection (внедрение самого себя как зависимости) или использование AOP.