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