Reputation: 12140
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() ?
Upvotes: 28
Views: 22715
Reputation: 94489
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.
Upvotes: 47