public class

DatasourceConnectionProvider

extends Object
implements ConnectionProvider
java.lang.Object
   ↳ org.hibernate.connection.DatasourceConnectionProvider

Class Overview

A connection provider that uses a DataSource registered with JNDI. Hibernate will use this ConnectionProvider by default if the property hibernate.connection.datasource is set.

Summary

Public Constructors
DatasourceConnectionProvider()
Public Methods
void close()
Release all resources held by this provider.
void closeConnection(Connection conn)
Dispose of a used connection.
void configure(Properties props)
Initialize the connection provider from given properties.
Connection getConnection()
Grab a connection, with the autocommit mode specified by hibernate.connection.autocommit.
DataSource getDataSource()
void setDataSource(DataSource ds)
boolean supportsAggressiveRelease()
Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with org.hibernate.cfg.Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections.

[Expand]
Inherited Methods
From class java.lang.Object
From interface org.hibernate.connection.ConnectionProvider

Public Constructors

public DatasourceConnectionProvider ()

Public Methods

public void close ()

Release all resources held by this provider. JavaDoc requires a second sentence.

public void closeConnection (Connection conn)

Dispose of a used connection.

Parameters
conn a JDBC connection
Throws
SQLException

public void configure (Properties props)

Initialize the connection provider from given properties.

Parameters
props SessionFactory properties

public Connection getConnection ()

Grab a connection, with the autocommit mode specified by hibernate.connection.autocommit.

Returns
  • a JDBC connection
Throws
SQLException

public DataSource getDataSource ()

public void setDataSource (DataSource ds)

public boolean supportsAggressiveRelease ()

Does this connection provider support aggressive release of JDBC connections and re-acquistion of those connections (if need be) later?

This is used in conjunction with org.hibernate.cfg.Environment.RELEASE_CONNECTIONS to aggressively release JDBC connections. However, the configured ConnectionProvider must 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.