Middle
26
0
questionbank

Что произойдет, если в методе вызвать метод, помеченный аннотацией @Transactional?

Answer from sobes.tech neural network

Если из метода внутри того же объекта (Self-Invocation) вызвать метод, помеченный @Transactional, транзакция не будет создана или присоединена к существующей. Это происходит потому, что Spring AOP по умолчанию использует прокси-объекты для применения аспектов, включая транзакции. При вызове метода внутри того же объекта, вызов идет непосредственно к реальному объекту (this), минуя прокси.

Чтобы транзакция применялась в этом случае, можно использовать:

  • Инжекция self-bean:
    java

Если из метода внутри того же объекта (Self-Invocation) вызвать метод, помеченный @Transactional, транзакция не будет создана или присоединена к существующей. Это происходит потому, что Spring AOP по умолчанию использует прокси-объекты для применения аспектов, включая транзакции. При вызове метода внутри того же объекта, вызов идет непосредственно к реальному объекту (this), минуя прокси.

Чтобы транзакция применялась в этом случае, можно использовать:

  • Инжекция self-bean:
    java

Register or sign in to get access to full answers for all questions from the question bank.

springtransactionstransaction-managementnested-transactionspropagation-behavior