org.springframework.orm.jpa
Class JpaTransactionManager.JpaTransactionObject

java.lang.Object
  extended by org.springframework.jdbc.datasource.JdbcTransactionObjectSupport
      extended by org.springframework.orm.jpa.JpaTransactionManager.JpaTransactionObject
All Implemented Interfaces:
SavepointManager, SmartTransactionObject
Enclosing class:
JpaTransactionManager

private class JpaTransactionManager.JpaTransactionObject
extends JdbcTransactionObjectSupport

JPA transaction object, representing a EntityManagerHolder. Used as transaction object by JpaTransactionManager.


Field Summary
private  EntityManagerHolder entityManagerHolder
           
private  boolean newEntityManagerHolder
           
private  java.lang.Object transactionData
           
 
Constructor Summary
private JpaTransactionManager.JpaTransactionObject()
           
 
Method Summary
 java.lang.Object createSavepoint()
          This implementation creates a JDBC 3.0 Savepoint and returns it.
 void flush()
          Flush the underlying sessions to the datastore, if applicable: for example, all affected Hibernate/JPA sessions.
 EntityManagerHolder getEntityManagerHolder()
           
private  SavepointManager getSavepointManager()
           
 java.lang.Object getTransactionData()
           
 boolean hasTransaction()
           
 boolean isNewEntityManagerHolder()
           
 boolean isRollbackOnly()
          Return whether the transaction is internally marked as rollback-only.
 void releaseSavepoint(java.lang.Object savepoint)
          This implementation releases the given JDBC 3.0 Savepoint.
 void rollbackToSavepoint(java.lang.Object savepoint)
          This implementation rolls back to the given JDBC 3.0 Savepoint.
 void setEntityManagerHolder(EntityManagerHolder entityManagerHolder, boolean newEntityManagerHolder)
           
 void setRollbackOnly()
           
 void setTransactionData(java.lang.Object transactionData)
           
 
Methods inherited from class org.springframework.jdbc.datasource.JdbcTransactionObjectSupport
getConnectionHolder, getConnectionHolderForSavepoint, getPreviousIsolationLevel, hasConnectionHolder, isSavepointAllowed, setConnectionHolder, setPreviousIsolationLevel, setSavepointAllowed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

entityManagerHolder

private EntityManagerHolder entityManagerHolder

newEntityManagerHolder

private boolean newEntityManagerHolder

transactionData

private java.lang.Object transactionData
Constructor Detail

JpaTransactionManager.JpaTransactionObject

private JpaTransactionManager.JpaTransactionObject()
Method Detail

setEntityManagerHolder

public void setEntityManagerHolder(EntityManagerHolder entityManagerHolder,
                                   boolean newEntityManagerHolder)

getEntityManagerHolder

public EntityManagerHolder getEntityManagerHolder()

isNewEntityManagerHolder

public boolean isNewEntityManagerHolder()

hasTransaction

public boolean hasTransaction()

setTransactionData

public void setTransactionData(java.lang.Object transactionData)

getTransactionData

public java.lang.Object getTransactionData()

setRollbackOnly

public void setRollbackOnly()

isRollbackOnly

public boolean isRollbackOnly()
Description copied from interface: SmartTransactionObject
Return whether the transaction is internally marked as rollback-only. Can, for example, check the JTA UserTransaction.

See Also:
javax.transaction.UserTransaction#getStatus, javax.transaction.Status#STATUS_MARKED_ROLLBACK

flush

public void flush()
Description copied from interface: SmartTransactionObject
Flush the underlying sessions to the datastore, if applicable: for example, all affected Hibernate/JPA sessions.

Specified by:
flush in interface SmartTransactionObject
Overrides:
flush in class JdbcTransactionObjectSupport

createSavepoint

public java.lang.Object createSavepoint()
                                 throws TransactionException
Description copied from class: JdbcTransactionObjectSupport
This implementation creates a JDBC 3.0 Savepoint and returns it.

Specified by:
createSavepoint in interface SavepointManager
Overrides:
createSavepoint in class JdbcTransactionObjectSupport
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 class: JdbcTransactionObjectSupport
This implementation rolls back to the given JDBC 3.0 Savepoint.

Specified by:
rollbackToSavepoint in interface SavepointManager
Overrides:
rollbackToSavepoint in class JdbcTransactionObjectSupport
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 class: JdbcTransactionObjectSupport
This implementation releases the given JDBC 3.0 Savepoint.

Specified by:
releaseSavepoint in interface SavepointManager
Overrides:
releaseSavepoint in class JdbcTransactionObjectSupport
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)

getSavepointManager

private SavepointManager getSavepointManager()