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