Class SynchronousFromReactiveTransactionManager<T>

    • Constructor Detail

      • SynchronousFromReactiveTransactionManager

        public SynchronousFromReactiveTransactionManager​(ReactorReactiveTransactionOperations<T> reactiveTransactionOperations,
                                                         java.util.concurrent.ExecutorService blockingExecutorService)
    • Method Detail

      • commit

        public void commit​(TransactionStatus<T> status)
                    throws TransactionException
        Description copied from interface: SynchronousTransactionManager
        Commit the given transaction, with regard to its status. If the transaction has been marked rollback-only programmatically, perform a rollback.

        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.

        Specified by:
        commit in interface SynchronousTransactionManager<T>
        Parameters:
        status - object returned by the getTransaction method
        Throws:
        UnexpectedRollbackException - in case of an unexpected rollback that the transaction coordinator initiated
        HeuristicCompletionException - in case of a transaction failure caused by a heuristic decision on the side of the transaction coordinator
        TransactionSystemException - in case of commit or system errors (typically caused by fundamental resource failures)
        IllegalTransactionStateException - if the given transaction is already completed (that is, committed or rolled back)
        TransactionException - if something goes wrong during commit
        See Also:
        TransactionExecution.setRollbackOnly()
      • rollback

        public void rollback​(TransactionStatus<T> status)
                      throws TransactionException
        Description copied from interface: SynchronousTransactionManager
        Perform a rollback of the given transaction.

        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.

        Specified by:
        rollback in interface SynchronousTransactionManager<T>
        Parameters:
        status - object returned by the getTransaction method
        Throws:
        TransactionSystemException - in case of rollback or system errors (typically caused by fundamental resource failures)
        IllegalTransactionStateException - if the given transaction is already completed (that is, committed or rolled back)
        TransactionException - if something goes wrong during rollback