Class SpringJtaSynchronizationAdapter
- java.lang.Object
- org.springframework.transaction.jta.SpringJtaSynchronizationAdapter
- All Implemented Interfaces:
Synchronization
public class SpringJtaSynchronizationAdapter extends Object implements Synchronization
Adapter that implements the JTASynchronization
interface delegating to an underlying SpringTransactionSynchronization
.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:
Transaction.registerSynchronization(javax.transaction.Synchronization)
,TransactionSynchronization
Constructor Summary
Constructors Constructor Description SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, TransactionManager jtaTransactionManager)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, UserTransaction jtaUserTransaction)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
afterCompletion(int status)
JTAafterCompletion
callback: invoked after commit/rollback.void
beforeCompletion()
JTAbeforeCompletion
callback: just invoked before commit.
Constructor Detail
SpringJtaSynchronizationAdapter
public SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate to
SpringJtaSynchronizationAdapter
public SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, @Nullable UserTransaction jtaUserTransaction)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.Note that this adapter will never perform a rollback-only call on WebLogic, since WebLogic Server is known to automatically mark the transaction as rollback-only in case of a
beforeCompletion
exception. Hence, on WLS, this constructor is equivalent to the single-arg constructor.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate tojtaUserTransaction
- the JTA UserTransaction to use for rollback-only setting in case of an exception thrown inbeforeCompletion
(can be omitted if the JTA provider itself marks the transaction rollback-only in such a scenario, which is required by the JTA specification as of JTA 1.1).
SpringJtaSynchronizationAdapter
public SpringJtaSynchronizationAdapter(TransactionSynchronization springSynchronization, @Nullable TransactionManager jtaTransactionManager)
Create a new SpringJtaSynchronizationAdapter for the given Spring TransactionSynchronization and JTA TransactionManager.Note that this adapter will never perform a rollback-only call on WebLogic, since WebLogic Server is known to automatically mark the transaction as rollback-only in case of a
beforeCompletion
exception. Hence, on WLS, this constructor is equivalent to the single-arg constructor.- Parameters:
springSynchronization
- the Spring TransactionSynchronization to delegate tojtaTransactionManager
- the JTA TransactionManager to use for rollback-only setting in case of an exception thrown inbeforeCompletion
(can be omitted if the JTA provider itself marks the transaction rollback-only in such a scenario, which is required by the JTA specification as of JTA 1.1)
Method Detail
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:
TransactionSynchronization.beforeCommit(boolean)
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:
TransactionSynchronization.beforeCompletion()
,TransactionSynchronization.afterCompletion(int)