org.springframework.orm.hibernate3

## Class SpringTransactionFactory

- java.lang.Object
- - org.springframework.orm.hibernate3.SpringTransactionFactory

- All Implemented Interfaces:
    TransactionFactory

      public class SpringTransactionFactory
      extends Object
      implements TransactionFactory

  Spring-aware implementation of the Hibernate TransactionFactory interface, aware of Spring-synchronized transactions (in particular Spring-managed JTA transactions) and asking for default release mode ON_CLOSE. Otherwise identical to Hibernate's default `JDBCTransactionFactory` implementation.
  Since:
    2.5.4
  Author:
    Juergen Hoeller
  See Also:
    `TransactionSynchronizationManager`, `JDBCTransactionFactory`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.hibernate.transaction.TransactionFactory

      `TransactionFactory.Context`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SpringTransactionFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `areCallbacksLocalToHibernateTransactions()`
    `void` | `configure(Properties props)`
    `Transaction` | `createTransaction(JDBCContext jdbcContext, TransactionFactory.Context transactionContext)`
    `ConnectionReleaseMode` | `getDefaultReleaseMode()` Sets connection release mode "on_close" as default.
    `boolean` | `isTransactionInProgress(JDBCContext jdbcContext, TransactionFactory.Context transactionContext, Transaction transaction)`
    `boolean` | `isTransactionManagerRequired()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SpringTransactionFactory

          public SpringTransactionFactory()

  - ### Method Detail

    - #### getDefaultReleaseMode

          public ConnectionReleaseMode getDefaultReleaseMode()

      Sets connection release mode "on_close" as default.

      This was the case for Hibernate 3.0; Hibernate 3.1 changed it to "auto" (i.e. "after_statement" or "after_transaction"). However, for Spring's resource management (in particular for HibernateTransactionManager), "on_close" is the better default.

      Specified by:
        `getDefaultReleaseMode` in interface `TransactionFactory`

    - #### createTransaction

          public Transaction createTransaction(JDBCContext jdbcContext,
                                      TransactionFactory.Context transactionContext)

      Specified by:
        `createTransaction` in interface `TransactionFactory`

    - #### configure

          public void configure(Properties props)

      Specified by:
        `configure` in interface `TransactionFactory`

    - #### isTransactionManagerRequired

          public boolean isTransactionManagerRequired()

      Specified by:
        `isTransactionManagerRequired` in interface `TransactionFactory`

    - #### areCallbacksLocalToHibernateTransactions

          public boolean areCallbacksLocalToHibernateTransactions()

      Specified by:
        `areCallbacksLocalToHibernateTransactions` in interface `TransactionFactory`

    - #### isTransactionInProgress

          public boolean isTransactionInProgress(JDBCContext jdbcContext,
                                        TransactionFactory.Context transactionContext,
                                        Transaction transaction)

      Specified by:
        `isTransactionInProgress` in interface `TransactionFactory`