Class DatasourceConnectionProviderImpl
- java.lang.Object
-
- org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl
-
- All Implemented Interfaces:
Serializable,ConnectionProvider,Service,Configurable,Stoppable,Wrapped
public class DatasourceConnectionProviderImpl extends Object implements ConnectionProvider, Configurable, Stoppable
AConnectionProviderthat manages connections from an underlyingDataSource.The
DataSourceto use may be specified by either:- injection using
setDataSource(javax.sql.DataSource) - declaring the
DataSourceinstance using the "hibernate.connection.datasource" config property - declaring the JNDI name under which the
DataSourceis found via the "hibernate.connection.datasource" config property
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DatasourceConnectionProviderImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseConnection(Connection connection)Release a connection from Hibernate use.voidconfigure(Map<String,Object> configValues)Configure the service.ConnectiongetConnection()Obtains a connection for Hibernate use according to the underlying strategy of this provider.DatabaseConnectionInfogetDatabaseConnectionInfo(Dialect dialect)DataSourcegetDataSource()booleanisUnwrappableAs(Class<?> unwrapType)Can this wrapped service be unwrapped as the indicated type?voidsetDataSource(DataSource dataSource)voidsetJndiService(JndiService jndiService)voidstop()Stop phase notificationbooleansupportsAggressiveRelease()Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?<T> Tunwrap(Class<T> unwrapType)Unproxy the service proxy
-
-
-
Method Detail
-
getDataSource
public DataSource getDataSource()
-
setDataSource
public void setDataSource(DataSource dataSource)
-
setJndiService
public void setJndiService(JndiService jndiService)
-
isUnwrappableAs
public boolean isUnwrappableAs(Class<?> unwrapType)
Description copied from interface:WrappedCan this wrapped service be unwrapped as the indicated type?- Specified by:
isUnwrappableAsin interfaceWrapped- Parameters:
unwrapType- The type to check.- Returns:
- True/false.
-
unwrap
public <T> T unwrap(Class<T> unwrapType)
Description copied from interface:WrappedUnproxy the service proxy
-
configure
public void configure(Map<String,Object> configValues)
Description copied from interface:ConfigurableConfigure the service.- Specified by:
configurein interfaceConfigurable- Parameters:
configValues- The configuration properties.
-
stop
public void stop()
Description copied from interface:StoppableStop phase notification
-
getConnection
public Connection getConnection() throws SQLException
Description copied from interface:ConnectionProviderObtains a connection for Hibernate use according to the underlying strategy of this provider.- Specified by:
getConnectionin interfaceConnectionProvider- Returns:
- The obtained JDBC connection
- Throws:
SQLException- Indicates a problem opening a connection
-
closeConnection
public void closeConnection(Connection connection) throws SQLException
Description copied from interface:ConnectionProviderRelease a connection from Hibernate use.- Specified by:
closeConnectionin interfaceConnectionProvider- Parameters:
connection- The JDBC connection to release- Throws:
SQLException- Indicates a problem closing the connection
-
supportsAggressiveRelease
public boolean supportsAggressiveRelease()
Description copied from interface:ConnectionProviderDoes this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?This is used in conjunction with
ConnectionReleaseMode.AFTER_STATEMENTto aggressively release JDBC connections. However, the configuredConnectionProvidermust support re-acquisition of the same underlying connection for that semantic to work.Typically, this is only true in managed environments where a container tracks connections by transaction or thread.
Note that JTA semantic depends on the fact that the underlying connection provider does support aggressive release.
- Specified by:
supportsAggressiveReleasein interfaceConnectionProvider- Returns:
trueif aggressive releasing is supported;falseotherwise.
-
getDatabaseConnectionInfo
public DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect)
- Specified by:
getDatabaseConnectionInfoin interfaceConnectionProvider
-
-