org.hibernate.transaction

Interface TransactionFactory

Known Implementing Classes:
CMTTransactionFactory, JDBCTransactionFactory, JTATransactionFactory

public interface TransactionFactory

Contract for generating Hibernate Transaction instances.

The concrete implementation to be used is specified by the Environment.TRANSACTION_STRATEGY configuration setting.

Implementors must be threadsafe and should declare a public default constructor.

Authors:
Anton van Straaten
Gavin King
See Also:
Transaction

Nested Class Summary

static interface
TransactionFactory.Context
Callback mechanism; a context is always a Session in the Hibernate usage.

Method Summary

boolean
areCallbacksLocalToHibernateTransactions()
Are all transaction callbacks local to Hibernate Transactions? Or can the callbacks originate from some other source (e.g.
void
configure(Properties props)
Configure from the given properties.
Transaction
createTransaction(JDBCContext jdbcContext, TransactionFactory.Context context)
Begin a transaction and return the associated Transaction instance.
ConnectionReleaseMode
getDefaultReleaseMode()
Get the default connection release mode.
boolean
isTransactionInProgress(JDBCContext jdbcContext, TransactionFactory.Context transactionContext, Transaction transaction)
Determine whether an underlying transaction is in progress.
boolean
isTransactionManagerRequired()
Do we require access to the JTA TransactionManager for this strategy?

Method Details

areCallbacksLocalToHibernateTransactions

public boolean areCallbacksLocalToHibernateTransactions()
Are all transaction callbacks local to Hibernate Transactions? Or can the callbacks originate from some other source (e.g. a JTA Synchronization).

configure

public void configure(Properties props)
            throws HibernateException
Configure from the given properties.
Parameters:
props - The configuration properties.
Throws:
HibernateException - Indicates a problem configuring this factory.

createTransaction

public Transaction createTransaction(JDBCContext jdbcContext,
                                     TransactionFactory.Context context)
            throws HibernateException
Begin a transaction and return the associated Transaction instance.
Parameters:
jdbcContext - The jdbc context to which the transaction belongs
context - The contract regarding the context in which this transaction will operate.
Returns:
Transaction
Throws:
HibernateException - Indicates a problem generating a transaction instance

getDefaultReleaseMode

public ConnectionReleaseMode getDefaultReleaseMode()
Get the default connection release mode.
Returns:
The default release mode associated with this strategy

isTransactionInProgress

public boolean isTransactionInProgress(JDBCContext jdbcContext,
                                       TransactionFactory.Context transactionContext,
                                       Transaction transaction)
Determine whether an underlying transaction is in progress.

Mainly this is used in determining whether to register a synchronization as well as whether or not to circumvent auto flushing outside transactions.

Parameters:
jdbcContext - The JDBC context
transactionContext - The transaction context
transaction - The Hibernate transaction
Returns:
true if an underlying transaction is know to be in effect.

isTransactionManagerRequired

public boolean isTransactionManagerRequired()
Do we require access to the JTA TransactionManager for this strategy?
Returns:
True if this strategy requires access to the JTA TransactionManager; false otherwise.