Подтвердить что ты не робот

Вложенный @Transactional

Можно ли вставлять аннотированные методы @Transactional в spring? Рассмотрим что-то вроде этого:

@Transactional
public void a() {
    obj.b();
}

@Transactional
public void b() {
    // ... 
}

Что произойдет в таком случае, если я отката в b() и откате в a()?

4b9b3361

Ответ 1

Вторая аннотация @Transactional в методе b() не требуется, потому что по умолчанию @Transactional имеет распространение REQUIRED, поэтому методы, вызываемые методом a(), будут транзакционными. Если вы хотите начать новую транзакцию в методе, вызванном методом a(), вам нужно будет изменить правила распространения. Читайте о Распространение транзакций.