Module org.jooq
Package org.jooq

Interface ContextTransactionalCallable<T>

  • Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface ContextTransactionalCallable<T>
    An FunctionalInterface that wraps transactional code.

    This callable may depend on captured scope ("context") in order to discover a contextual Configuration to be used to create new SQL statements. Clients are responsible to implement such context state in appropriate ConnectionProvider and TransactionProvider implementations.

    An out-of-the-box implementation for a fitting TransactionProvider is available through ThreadLocalTransactionProvider.

    Author:
    Lukas Eder
    • Method Detail

      • run

        T run()
        throws Throwable
        Run the transactional code.

        If this method completes normally, and this is not a nested transaction, then the transaction will be committed. If this method completes with an exception (any Throwable), then the transaction is rolled back to the beginning of this ContextTransactionalCallable.

        Returns:
        The outcome of the transaction.
        Throws:
        Throwable - Any exception that will cause a rollback of the code contained in this transaction. If this is a nested transaction, the rollback may be performed only to the state before executing this ContextTransactionalCallable.