org.springframework.transaction

## Interface TransactionStatus

- All Superinterfaces:
    Flushable, SavepointManager, TransactionExecution
  All Known Implementing Classes:
    AbstractTransactionStatus, DefaultTransactionStatus, SimpleTransactionStatus

      public interface TransactionStatus
      extends TransactionExecution, SavepointManager, Flushable

  Representation of an ongoing `PlatformTransactionManager` transaction. Extends the common `TransactionExecution` interface.

  Transactional code can use this to retrieve status information, and to programmatically request a rollback (instead of throwing an exception that causes an implicit rollback).

  Includes the `SavepointManager` interface to provide access to savepoint management facilities. Note that savepoint management is only available if supported by the underlying transaction manager.

  Since:
    27.03.2003
  Author:
    Juergen Hoeller
  See Also:
    `TransactionExecution.setRollbackOnly()`, `PlatformTransactionManager.getTransaction(org.springframework.transaction.TransactionDefinition)`, `TransactionCallback.doInTransaction(org.springframework.transaction.TransactionStatus)`, `TransactionAspectSupport.currentTransactionStatus()`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `flush()` Flush the underlying session to the datastore, if applicable: for example, all affected Hibernate/JPA sessions.
    `boolean` | `hasSavepoint()` Return whether this transaction internally carries a savepoint, that is, has been created as nested transaction based on a savepoint.

    - ### Methods inherited from interface org.springframework.transaction.TransactionExecution

      `isCompleted, isNewTransaction, isRollbackOnly, setRollbackOnly`

    - ### Methods inherited from interface org.springframework.transaction.SavepointManager

      `createSavepoint, releaseSavepoint, rollbackToSavepoint`

- - ### Method Detail

    - #### hasSavepoint

          boolean hasSavepoint()

      Return whether this transaction internally carries a savepoint, that is, has been created as nested transaction based on a savepoint.

      This method is mainly here for diagnostic purposes, alongside `TransactionExecution.isNewTransaction()`. For programmatic handling of custom savepoints, use the operations provided by `SavepointManager`.

      See Also:
        `TransactionExecution.isNewTransaction()`, `SavepointManager.createSavepoint()`, `SavepointManager.rollbackToSavepoint(Object)`, `SavepointManager.releaseSavepoint(Object)`

    - #### flush

          void flush()

      Flush the underlying session to the datastore, if applicable: for example, all affected Hibernate/JPA sessions.

      This is effectively just a hint and may be a no-op if the underlying transaction manager does not have a flush concept. A flush signal may get applied to the primary resource or to transaction synchronizations, depending on the underlying resource.

      Specified by:
        `flush` in interface `Flushable`