@Transactional Propagation REQUIRES_NEW -> NOT_SUPPORTED -> REQUIRED

Viewed 118

I have service A executing a method which is:

@Transactional(propagation=Propagation.REQUIRES_NEW)

which calls a method on service B which is:

@Transactional(propagation=Propagation.NOT_SUPPORTED)

which calls a method on service C which is:

@Transactional(propagation=Propagation.REQUIRED)

I know from the documentation that the service A transaction is 'suspended', when execution enters the method in service B. And I also know that the REQUIRED will use the 'current transaction' if there is one.

What I don't know is whether the suspended transaction from service A is classed as the 'current transaction' when service C's method is called.

In other words, in this instance, does the REQUIRED act like a REQUIRES_NEW, or will it just participate in the original transaction?

0 Answers
Related