У меня есть класс обслуживания Spring с двумя методами, оба помечены @Transactional
. Когда я вызываю второй метод из первого внутренне (внутри того же компонента), транзакция второго метода, похоже, не запускает новую — он просто повторно использует существующую транзакцию, хотя я установил распространение = Propagation.REQUIRES_NEW**.
**
Код: Выделить всё
@Service
public class MyService {
@Transactional
public void methodA() {
methodB(); // calling internal method
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void methodB() {
// expected a new transaction here
}
}
Почему REQUIRES_NEW
не создается новая транзакция при вызове из методаA()
? Связано ли это с механизмом прокси Spring AOP?
Пожалуйста, помогите!
Подробнее здесь:
https://stackoverflow.com/questions/799 ... al-egorx-x