问题
Is it possible to nest @Transactional annotated methods in spring? Consider something like this:
@Transactional
public void a() {
obj.b();
}
@Transactional
public void b() {
// ...
}
What happens in such a case if I rollback in b() and rollback in a() ?
回答1:
The second @Transactional
annotation on method b()
is not required because by default @Transactional
has a propagation of REQUIRED
, therefore methods called by method a()
will be transactional. If you are looking to start a new transaction within a method called by method a()
you will need to modify the propagation rules. Read about Transaction Propagation.
来源:https://stackoverflow.com/questions/6633870/nested-transactional