Class SpringJtaSynchronizationAdapter
java.lang.Object
org.springframework.transaction.jta.SpringJtaSynchronizationAdapter
- All Implemented Interfaces:
Synchronization
Adapter that implements the JTA
Synchronization
interface delegating to an underlying Spring
TransactionSynchronization
.
Useful for synchronizing Spring resource management code with plain JTA / EJB CMT transactions, despite the original code being built for Spring transaction synchronization.
- Since:
- 2.0
- Author:
- Juergen Hoeller
- See Also:
-
Field Summary
-
Constructor Summary
ConstructorDescriptionSpringJtaSynchronizationAdapter
(TransactionSynchronization springSynchronization) Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.SpringJtaSynchronizationAdapter
(TransactionSynchronization springSynchronization, TransactionManager jtaTransactionManager) Deprecated.SpringJtaSynchronizationAdapter
(TransactionSynchronization springSynchronization, UserTransaction jtaUserTransaction) Deprecated.as of 6.0.12 since JTA 1.1+ requires implicit rollback-only setting in case of an exception thrown inbeforeCompletion
, so the regularSpringJtaSynchronizationAdapter(TransactionSynchronization)
constructor is sufficient for all scenarios -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterCompletion
(int status) JTAafterCompletion
callback: invoked after commit/rollback.void
JTAbeforeCompletion
callback: just invoked before commit.
-
Field Details
-
logger
-
-
Constructor Details
-
SpringJtaSynchronizationAdapter
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate to
-
SpringJtaSynchronizationAdapter
@Deprecated(since="6.0.12") public SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, @Nullable UserTransaction jtaUserTransaction) Deprecated.as of 6.0.12 since JTA 1.1+ requires implicit rollback-only setting in case of an exception thrown inbeforeCompletion
, so the regularSpringJtaSynchronizationAdapter(TransactionSynchronization)
constructor is sufficient for all scenariosCreate a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate tojtaUserTransaction
- the JTA UserTransaction to use for rollback-only setting in case of an exception thrown inbeforeCompletion
-
SpringJtaSynchronizationAdapter
@Deprecated(since="6.0.12") public SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, @Nullable TransactionManager jtaTransactionManager) Deprecated.as of 6.0.12 since JTA 1.1+ requires implicit rollback-only setting in case of an exception thrown inbeforeCompletion
, so the regularSpringJtaSynchronizationAdapter(TransactionSynchronization)
constructor is sufficient for all scenariosCreate a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate tojtaTransactionManager
- the JTA TransactionManager to use for rollback-only setting in case of an exception thrown inbeforeCompletion
-
-
Method Details
-
beforeCompletion
public void beforeCompletion()JTAbeforeCompletion
callback: just invoked before commit.In case of an exception, the JTA transaction will be marked as rollback-only.
- Specified by:
beforeCompletion
in interfaceSynchronization
- See Also:
-
afterCompletion
public void afterCompletion(int status) JTAafterCompletion
callback: invoked after commit/rollback.Needs to invoke the Spring synchronization's
beforeCompletion
at this late stage in case of a rollback, since there is no corresponding callback with JTA.- Specified by:
afterCompletion
in interfaceSynchronization
- See Also:
-
beforeCompletion
, so the regularSpringJtaSynchronizationAdapter(TransactionSynchronization)
constructor is sufficient for all scenarios