接口 TransactionDefinition

    • 字段详细资料

      • PROPAGATION_REQUIRED

        static final int PROPAGATION_REQUIRED
        Support a current transaction; create a new one if none exists. Analogous to the EJB transaction attribute of the same name.

        This is typically the default setting of a transaction definition, and typically defines a transaction synchronization scope.

        另请参阅:
        常量字段值
      • PROPAGATION_SUPPORTS

        static final int PROPAGATION_SUPPORTS
        Support a current transaction; execute non-transactionally if none exists. Analogous to the EJB transaction attribute of the same name.

        NOTE: For transaction managers with transaction synchronization, PROPAGATION_SUPPORTS is slightly different from no transaction at all, as it defines a transaction scope that synchronization might apply to. As a consequence, the same resources (a JDBC Connection, a Hibernate Session, etc) will be shared for the entire specified scope. Note that the exact behavior depends on the actual synchronization configuration of the transaction manager!

        In general, use PROPAGATION_SUPPORTS with care! In particular, do not rely on PROPAGATION_REQUIRED or PROPAGATION_REQUIRES_NEWwithin a PROPAGATION_SUPPORTS scope (which may lead to synchronization conflicts at runtime). If such nesting is unavoidable, make sure to configure your transaction manager appropriately (typically switching to "synchronization on actual transaction").

        另请参阅:
        AbstractPlatformTransactionManager.setTransactionSynchronization(int), AbstractPlatformTransactionManager.SYNCHRONIZATION_ON_ACTUAL_TRANSACTION, 常量字段值
      • PROPAGATION_MANDATORY

        static final int PROPAGATION_MANDATORY
        Support a current transaction; throw an exception if no current transaction exists. Analogous to the EJB transaction attribute of the same name.

        Note that transaction synchronization within a PROPAGATION_MANDATORY scope will always be driven by the surrounding transaction.

        另请参阅:
        常量字段值
      • PROPAGATION_REQUIRES_NEW

        static final int PROPAGATION_REQUIRES_NEW
        Create a new transaction, suspending the current transaction if one exists. Analogous to the EJB transaction attribute of the same name.

        NOTE: Actual transaction suspension will not work out-of-the-box on all transaction managers. This in particular applies to JtaTransactionManager, which requires the javax.transaction.TransactionManager to be made available it to it (which is server-specific in standard Java EE).

        A PROPAGATION_REQUIRES_NEW scope always defines its own transaction synchronizations. Existing synchronizations will be suspended and resumed appropriately.

        另请参阅:
        JtaTransactionManager.setTransactionManager(javax.transaction.TransactionManager), 常量字段值
      • PROPAGATION_NOT_SUPPORTED

        static final int PROPAGATION_NOT_SUPPORTED
        Do not support a current transaction; rather always execute non-transactionally. Analogous to the EJB transaction attribute of the same name.

        NOTE: Actual transaction suspension will not work out-of-the-box on all transaction managers. This in particular applies to JtaTransactionManager, which requires the javax.transaction.TransactionManager to be made available it to it (which is server-specific in standard Java EE).

        Note that transaction synchronization is not available within a PROPAGATION_NOT_SUPPORTED scope. Existing synchronizations will be suspended and resumed appropriately.

        另请参阅:
        JtaTransactionManager.setTransactionManager(javax.transaction.TransactionManager), 常量字段值
      • PROPAGATION_NEVER

        static final int PROPAGATION_NEVER
        Do not support a current transaction; throw an exception if a current transaction exists. Analogous to the EJB transaction attribute of the same name.

        Note that transaction synchronization is not available within a PROPAGATION_NEVER scope.

        另请参阅:
        常量字段值
      • ISOLATION_DEFAULT

        static final int ISOLATION_DEFAULT
        Use the default isolation level of the underlying datastore. All other levels correspond to the JDBC isolation levels.
        另请参阅:
        Connection, 常量字段值
      • ISOLATION_READ_UNCOMMITTED

        static final int ISOLATION_READ_UNCOMMITTED
        Indicates that dirty reads, non-repeatable reads and phantom reads can occur.

        This level allows a row changed by one transaction to be read by another transaction before any changes in that row have been committed (a "dirty read"). If any of the changes are rolled back, the second transaction will have retrieved an invalid row.

        另请参阅:
        Connection.TRANSACTION_READ_UNCOMMITTED, 常量字段值
      • ISOLATION_REPEATABLE_READ

        static final int ISOLATION_REPEATABLE_READ
        Indicates that dirty reads and non-repeatable reads are prevented; phantom reads can occur.

        This level prohibits a transaction from reading a row with uncommitted changes in it, and it also prohibits the situation where one transaction reads a row, a second transaction alters the row, and the first transaction re-reads the row, getting different values the second time (a "non-repeatable read").

        另请参阅:
        Connection.TRANSACTION_REPEATABLE_READ, 常量字段值
      • ISOLATION_SERIALIZABLE

        static final int ISOLATION_SERIALIZABLE
        Indicates that dirty reads, non-repeatable reads and phantom reads are prevented.

        This level includes the prohibitions in ISOLATION_REPEATABLE_READ and further prohibits the situation where one transaction reads all rows that satisfy a WHERE condition, a second transaction inserts a row that satisfies that WHERE condition, and the first transaction re-reads for the same condition, retrieving the additional "phantom" row in the second read.

        另请参阅:
        Connection.TRANSACTION_SERIALIZABLE, 常量字段值
      • TIMEOUT_DEFAULT

        static final int TIMEOUT_DEFAULT
        Use the default timeout of the underlying transaction system, or none if timeouts are not supported.
        另请参阅:
        常量字段值