Здравствуйте, Blazkowicz, Вы писали:
А если разнести по разным классам данные методы тогда как решается?
Правильно понимаю о таком решении идет речь?
@Component
public class Outer {
@Autowired
private Inner inner;
@Transactional
public void do() {
inner.do();
}
}
@Component
public class Inner {
@Transactionl(propagation = Propagation.REQUIRES_NEW)
public void do() {
}
}
B>Здравствуйте, Аноним, Вы писали:
B>B>public void doOuter() {
B> doInInnerTransaction();
B>}
B>@Transactional
B>public void doInInnerTransaction() {
B> // do some actions with db
B>}
B>
B>Проблема в том как работают эти аннотации. Spring создаёт прокси. И при вызове метода, обработчик прокси проверяет а не надо ли чего сделать с транзакцией.
B>В случае вызова метода того же класса. Как у вас. Вызов идёт мимо прокси. Поэтому всё что вы пишете в @Transactional для doInInnerTransaction — игнорируется.
B>Достаточно геморная задача.