Здравствуйте, Аноним, Вы писали:
public void doOuter() {
doInInnerTransaction();
}
@Transactional
public void doInInnerTransaction() {
// do some actions with db
}
Проблема в том как работают эти аннотации. Spring создаёт прокси. И при вызове метода, обработчик прокси проверяет а не надо ли чего сделать с транзакцией.
В случае вызова метода того же класса. Как у вас. Вызов идёт мимо прокси. Поэтому всё что вы пишете в @Transactional для doInInnerTransaction — игнорируется.
Достаточно геморная задача.