Class DataSourceBasedMultiTenantConnectionProviderImpl
- java.lang.Object
-
- org.hibernate.engine.jdbc.connections.spi.AbstractDataSourceBasedMultiTenantConnectionProviderImpl
-
- org.hibernate.engine.jdbc.connections.spi.DataSourceBasedMultiTenantConnectionProviderImpl
-
- All Implemented Interfaces:
java.io.Serializable,MultiTenantConnectionProvider,Service,ServiceRegistryAwareService,Stoppable,Wrapped
public class DataSourceBasedMultiTenantConnectionProviderImpl extends AbstractDataSourceBasedMultiTenantConnectionProviderImpl implements ServiceRegistryAwareService, Stoppable
A concrete implementation of theMultiTenantConnectionProvidercontract bases on a number of reasonable assumptions. We assume that:-
The
DataSourceinstances are all available from JNDI named by the tenant identifier relative to a single base JNDI context -
AvailableSettings.DATASOURCEis a string naming either the any data source or the base JNDI context. If the latter,TENANT_IDENTIFIER_TO_USE_FOR_ANY_KEYmust also be set.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringTENANT_IDENTIFIER_TO_USE_FOR_ANY_KEYIdentifies the DataSource name to use forselectAnyDataSource()handling
-
Constructor Summary
Constructors Constructor Description DataSourceBasedMultiTenantConnectionProviderImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidinjectServices(ServiceRegistryImplementor serviceRegistry)Callback to inject the registry.protected javax.sql.DataSourceselectAnyDataSource()protected javax.sql.DataSourceselectDataSource(java.lang.String tenantIdentifier)voidstop()Stop phase notification-
Methods inherited from class org.hibernate.engine.jdbc.connections.spi.AbstractDataSourceBasedMultiTenantConnectionProviderImpl
getAnyConnection, getConnection, isUnwrappableAs, releaseAnyConnection, releaseConnection, supportsAggressiveRelease, unwrap
-
-
-
-
Field Detail
-
TENANT_IDENTIFIER_TO_USE_FOR_ANY_KEY
public static final java.lang.String TENANT_IDENTIFIER_TO_USE_FOR_ANY_KEY
Identifies the DataSource name to use forselectAnyDataSource()handling- See Also:
- Constant Field Values
-
-
Method Detail
-
selectAnyDataSource
protected javax.sql.DataSource selectAnyDataSource()
- Specified by:
selectAnyDataSourcein classAbstractDataSourceBasedMultiTenantConnectionProviderImpl
-
selectDataSource
protected javax.sql.DataSource selectDataSource(java.lang.String tenantIdentifier)
- Specified by:
selectDataSourcein classAbstractDataSourceBasedMultiTenantConnectionProviderImpl
-
injectServices
public void injectServices(ServiceRegistryImplementor serviceRegistry)
Description copied from interface:ServiceRegistryAwareServiceCallback to inject the registry.- Specified by:
injectServicesin interfaceServiceRegistryAwareService- Parameters:
serviceRegistry- The registry
-
-