Connection provider contract used when the application is using
multi-tenancy support requiring tenant-aware connections.
A MultiTenantConnectionProvider may be selected using the configuration property
hibernate.multi_tenant_connection_provider.
An application usually implements its own custom MultiTenantConnectionProvider
by subclassing AbstractMultiTenantConnectionProvider.
AbstractMultiTenantConnectionProvider, org.hibernate.cfg.AvailableSettings#MULTI_TENANT_CONNECTION_PROVIDER
| Modifier and Type | Method and Description |
|---|---|
| public Connection | Returns: The database metadata.Allows access to the database metadata of the underlying database(s) in situations where we do not have a tenant id (like startup processing, for example). |
| public Connection | Returns: The obtained JDBC connectionThe identifier of the tenant for which to get a connection tenantIdentifier)Obtains a connection for use according to the underlying strategy of this provider. |
| public void | releaseAnyConnection(Connection
The JDBC connection to release connection)Release a connection obtained from |
| public void | releaseConnection(T
The identifier of the tenant. tenantIdentifier, Connection The JDBC connection to release connection)Release a connection from Hibernate use. |
| public boolean | Returns: true if aggressive releasing is supported; false otherwise.Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed? |
| getAnyConnection | back to summary |
|---|---|
| public Connection getAnyConnection() throws SQLException Allows access to the database metadata of the underlying database(s) in situations where we do not have a tenant id (like startup processing, for example).
| |
| getConnection | back to summary |
|---|---|
| public Connection getConnection(T tenantIdentifier) throws SQLException Obtains a connection for use according to the underlying strategy of this provider.
| |
| releaseAnyConnection | back to summary |
|---|---|
| public void releaseAnyConnection(Connection connection) throws SQLException Release a connection obtained from
| |
| releaseConnection | back to summary |
|---|---|
| public void releaseConnection(T tenantIdentifier, Connection connection) throws SQLException Release a connection from Hibernate use.
| |
| supportsAggressiveRelease | back to summary |
|---|---|
| public boolean supportsAggressiveRelease() Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?
This is used in conjunction with 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.
| |