org.springframework.orm.hibernate3
Class TransactionAwareDataSourceConnectionProvider
java.lang.Object
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
org.springframework.orm.hibernate3.TransactionAwareDataSourceConnectionProvider
- All Implemented Interfaces:
- org.hibernate.connection.ConnectionProvider
public class TransactionAwareDataSourceConnectionProvider
- extends LocalDataSourceConnectionProvider
Subclass of LocalDataSourceConnectionProvider that returns a
transaction-aware proxy for the exposed DataSource. Used if
LocalSessionFactoryBean's "useTransactionAwareDataSource" flag is on.
- Since:
- 1.2
- Author:
- Juergen Hoeller
- See Also:
AbstractSessionFactoryBean.setUseTransactionAwareDataSource(boolean)
Method Summary |
protected DataSource |
getDataSourceToUse(DataSource originalDataSource)
Return a TransactionAwareDataSourceProxy for the given DataSource,
provided that it isn't a TransactionAwareDataSourceProxy already. |
boolean |
supportsAggressiveRelease()
This implementation returns true : We can guarantee
to receive the same Connection within a transaction, as we are
exposing a TransactionAwareDataSourceProxy. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TransactionAwareDataSourceConnectionProvider
public TransactionAwareDataSourceConnectionProvider()
getDataSourceToUse
protected DataSource getDataSourceToUse(DataSource originalDataSource)
- Return a TransactionAwareDataSourceProxy for the given DataSource,
provided that it isn't a TransactionAwareDataSourceProxy already.
- Overrides:
getDataSourceToUse
in class LocalDataSourceConnectionProvider
- Parameters:
originalDataSource
- the DataSource as configured by the user
on LocalSessionFactoryBean
- Returns:
- the DataSource to actually retrieve Connections from
(potentially wrapped)
- See Also:
AbstractSessionFactoryBean.setDataSource(javax.sql.DataSource)
supportsAggressiveRelease
public boolean supportsAggressiveRelease()
- This implementation returns
true
: We can guarantee
to receive the same Connection within a transaction, as we are
exposing a TransactionAwareDataSourceProxy.
- Specified by:
supportsAggressiveRelease
in interface org.hibernate.connection.ConnectionProvider
- Overrides:
supportsAggressiveRelease
in class LocalDataSourceConnectionProvider