Вопрос проверяет понимание внутренних механизмов Spring AOP и того, как именно применяется @Transactional во время выполнения кода.
Короткий ответ
Spring реализует транзакции с помощью прокси-объектов. Вместо прямого вызова метода вызывается прокси, который оборачивает выполнение логикой транзакции. Прокси открывает транзакцию перед вызовом метода и коммитит или откатывает её после. Если метод вызывается в обход прокси, транзакция не создаётся. Поэтому важно понимать, как именно происходит вызов метода.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.