Вложенные @Transactional

можно ли вложить @ транзакционные аннотированные методы весной? Рассмотреть что-то вроде этого:

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

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

что происходит в таком случае, если я откатываюсь в b() и откат в a() ?

1 ответов


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