Почему
@Transactional не работает при вызове метода внутри того же класса?Ответ: Потому что @Transactional в Spring работает через прокси. Когда метод вызывается внутри того же класса, вызов происходит напрямую, минуя прокси-обёртку, а значит, никакие аспекты (в том числе открытие транзакции) не применяются.
Spring AOP не перехватывает вызовы методов внутри одного бина — это ограничение прокси-механизма. Чтобы аннотация сработала, метод должен вызываться другим Spring-бином или через сам прокси, а не напрямую.
tags: #собеседование
📱 Java Developer | Чат