org.springframework.orm.jpa.vendor
Class OpenJpaDialect.OpenJpaTransactionData

java.lang.Object
  extended by org.springframework.orm.jpa.vendor.OpenJpaDialect.OpenJpaTransactionData
All Implemented Interfaces:
SavepointManager
Enclosing class:
OpenJpaDialect

private static class OpenJpaDialect.OpenJpaTransactionData
extends java.lang.Object
implements SavepointManager

Transaction data Object exposed from beginTransaction, implementing the SavepointManager interface.


Field Summary
private  OpenJPAEntityManager entityManager
           
private  int savepointCounter
           
 
Constructor Summary
OpenJpaDialect.OpenJpaTransactionData(OpenJPAEntityManager entityManager)
           
 
Method Summary
 java.lang.Object createSavepoint()
          Create a new savepoint.
 void releaseSavepoint(java.lang.Object savepoint)
          Explicitly release the given savepoint.
 void rollbackToSavepoint(java.lang.Object savepoint)
          Roll back to the given savepoint.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entityManager

private final OpenJPAEntityManager entityManager

savepointCounter

private int savepointCounter
Constructor Detail

OpenJpaDialect.OpenJpaTransactionData

public OpenJpaDialect.OpenJpaTransactionData(OpenJPAEntityManager entityManager)
Method Detail

createSavepoint

public java.lang.Object createSavepoint()
                                 throws TransactionException
Description copied from interface: SavepointManager
Create a new savepoint. You can roll back to a specific savepoint via rollbackToSavepoint, and explicitly release a savepoint that you don't need anymore via releaseSavepoint.

Note that most transaction managers will automatically release savepoints at transaction completion.

Specified by:
createSavepoint in interface SavepointManager
Returns:
a savepoint object, to be passed into rollbackToSavepoint or releaseSavepoint
Throws:
NestedTransactionNotSupportedException - if the underlying transaction does not support savepoints
TransactionException - if the savepoint could not be created, for example because the transaction is not in an appropriate state
See Also:
Connection.setSavepoint()

rollbackToSavepoint

public void rollbackToSavepoint(java.lang.Object savepoint)
                         throws TransactionException
Description copied from interface: SavepointManager
Roll back to the given savepoint. The savepoint will be automatically released afterwards.

Specified by:
rollbackToSavepoint in interface SavepointManager
Parameters:
savepoint - the savepoint to roll back to
Throws:
NestedTransactionNotSupportedException - if the underlying transaction does not support savepoints
TransactionException - if the rollback failed
See Also:
Connection.rollback(java.sql.Savepoint)

releaseSavepoint

public void releaseSavepoint(java.lang.Object savepoint)
                      throws TransactionException
Description copied from interface: SavepointManager
Explicitly release the given savepoint.

Note that most transaction managers will automatically release savepoints at transaction completion.

Implementations should fail as silently as possible if proper resource cleanup will still happen at transaction completion.

Specified by:
releaseSavepoint in interface SavepointManager
Parameters:
savepoint - the savepoint to release
Throws:
NestedTransactionNotSupportedException - if the underlying transaction does not support savepoints
TransactionException - if the release failed
See Also:
Connection.releaseSavepoint(java.sql.Savepoint)