public class TransactionManagerSpringAdapter extends java.lang.Object implements ITransactionManager
ITransactionManager
interface that delegates
to a Spring transaction manager.Constructor and Description |
---|
TransactionManagerSpringAdapter(org.springframework.transaction.PlatformTransactionManager pSpringTransactionManager,
IOdiEntityManagerFactory pOdiEntityManagerFactory)
Create a new
TransactionManagerSpringAdapter . |
Modifier and Type | Method and Description |
---|---|
void |
commit(ITransactionStatus pStatus)
Commit the given transaction, with regard to its status.
|
ITransactionStatus |
getTransaction(ITransactionDefinition pDefinition)
Obtains the currently active transaction or create a new one according to the
given transaction definition (containing a propagation behavior).
|
void |
rollback(ITransactionStatus pStatus)
Perform a rollback of the given transaction.
|
public TransactionManagerSpringAdapter(org.springframework.transaction.PlatformTransactionManager pSpringTransactionManager, IOdiEntityManagerFactory pOdiEntityManagerFactory)
TransactionManagerSpringAdapter
.pSpringTransactionManager
- Spring transaction manager to delegatepOdiEntityManagerFactory
- entity manager factory to manage resources frompublic void commit(ITransactionStatus pStatus)
ITransactionManager
If the transaction wasn't a new one, omit the commit for proper participation in the surrounding transaction. If a previous transaction has been suspended to be able to create a new one, resume the previous transaction after committing the new one.
Note that when the commit call completes, no matter if normally or throwing an exception, the transaction must be fully completed and cleaned up. No rollback call should be expected in such a case. If this method throws an exception other than a TransactionException, then some before-commit error caused the commit attempt to fail. For example, an O/R Mapping tool might have tried to flush changes to the database right before commit, with the resulting DataAccessException causing the transaction to fail. The original exception will be propagated to the caller of this commit method in such a case.
commit
in interface ITransactionManager
pStatus
- object returned by the getTransaction methodpublic void rollback(ITransactionStatus pStatus)
ITransactionManager
If the transaction wasn't a new one, just set it rollback-only for proper participation in the surrounding transaction. If a previous transaction has been suspended to be able to create a new one, resume the previous transaction after rolling back the new one.
Do not call rollback on a transaction if commit threw an exception. The transaction will already have been completed and cleaned up when commit returns, even in case of a commit exception. Consequently, a rollback call after commit failure will lead to an IllegalTransactionStateException.
rollback
in interface ITransactionManager
pStatus
- object returned by the getTransaction methodpublic ITransactionStatus getTransaction(ITransactionDefinition pDefinition)
ITransactionManager
If the given definition is null, then a default definition (with default propagation and isolation) will be used.
Note that parameters like isolation level or timeout will only be applied to new transactions, and thus be ignored when participating in active ones.
getTransaction
in interface ITransactionManager
pDefinition
- ITransactionDefinition instance (can be null for defaults), describing propagation behavior, name, etc