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 SummaryFields
- 
Constructor SummaryConstructorsConstructorDescriptionSpringJtaSynchronizationAdapter(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 SummaryModifier and TypeMethodDescriptionvoidafterCompletion(int status) JTAafterCompletioncallback: invoked after commit/rollback.voidJTAbeforeCompletioncallback: just invoked before commit.
- 
Field Details- 
logger
 
- 
- 
Constructor Details- 
SpringJtaSynchronizationAdapterCreate 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 to
- jtaUserTransaction- the JTA UserTransaction to use for rollback-only setting in case of an exception thrown in- beforeCompletion
 
- 
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 to
- jtaTransactionManager- the JTA TransactionManager to use for rollback-only setting in case of an exception thrown in- beforeCompletion
 
 
- 
- 
Method Details- 
beforeCompletionpublic void beforeCompletion()JTAbeforeCompletioncallback: just invoked before commit.In case of an exception, the JTA transaction will be marked as rollback-only. - Specified by:
- beforeCompletionin interface- Synchronization
- See Also:
 
- 
afterCompletionpublic void afterCompletion(int status) JTAafterCompletioncallback: invoked after commit/rollback.Needs to invoke the Spring synchronization's beforeCompletionat this late stage in case of a rollback, since there is no corresponding callback with JTA.- Specified by:
- afterCompletionin interface- Synchronization
- See Also:
 
 
- 
beforeCompletion, so the regularSpringJtaSynchronizationAdapter(TransactionSynchronization)constructor is sufficient for all scenarios