Я задаю этот вопрос, чтобы продолжить проблему, которую я описал здесь .
У меня было неожиданное поведение, когда я использовал транзакции AspectJ - некоторые операции были немедленно зафиксированы в БД, прежде чем эта транзакция была завершена. И поэтому их не откатывали в случае ошибки. Когда я изменил режим советов (@EnableTransactionManagement(mode=AdviceMode.ASPECTJ)
) на PROXY
, все работало нормально.
Я обнаружил, что у меня было несколько классов, аннотированных аннотацией @ComponentScan
, и когда я удалил все эти аннотации, кроме одной, все заработало, как и ожидалось!
Мой вопрос - почему?