/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
 * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.engine.jdbc.connections.spi;

import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;

Provides centralized access to JDBC connections. Centralized to hide the complexity of accounting for contextual (multi-tenant) versus non-contextual access.
Author:Steve Ebersole
/** * Provides centralized access to JDBC connections. Centralized to hide the complexity of accounting for contextual * (multi-tenant) versus non-contextual access. * * @author Steve Ebersole */
public interface JdbcConnectionAccess extends Serializable {
Obtain a JDBC connection
Throws:
Returns:The obtained connection
/** * Obtain a JDBC connection * * @return The obtained connection * * @throws SQLException Indicates a problem getting the connection */
Connection obtainConnection() throws SQLException;
Release a previously obtained connection
Params:
  • connection – The connection to release
Throws:
  • SQLException – Indicates a problem releasing the connection
/** * Release a previously obtained connection * * @param connection The connection to release * * @throws SQLException Indicates a problem releasing the connection */
void releaseConnection(Connection connection) throws SQLException;
Does the underlying provider of connections support aggressive releasing of connections (and re-acquisition of those connections later, if need be) in JTA environments?
See Also:
Returns:true/false
/** * Does the underlying provider of connections support aggressive releasing of connections (and re-acquisition * of those connections later, if need be) in JTA environments? * * @return true/false * * @see org.hibernate.engine.jdbc.connections.spi.ConnectionProvider#supportsAggressiveRelease() * @see org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider#supportsAggressiveRelease() */
boolean supportsAggressiveRelease(); }