2011-07-09 22 views
13

Czy można zagnieżdżać @Transactional metody z adnotacjami na wiosnę? Zastanów się coś takiego:Zagnieżdżony @ Transactional

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

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

Co się dzieje w takim przypadku, jeśli cofnąć się w B() i rollback w A()?

Odpowiedz

24

Drugi @Transactional adnotacje na metodzie b() nie jest wymagane, ponieważ domyślnie @Transactional ma propagacji REQUIRED zatem metody nazywane metodą a() będzie transakcyjny. Jeśli chcesz rozpocząć nową transakcję w metodzie nazwanej metodą a(), musisz zmodyfikować reguły propagacji. Przeczytaj o Transaction Propagation.

Powiązane problemy