Class DataSourceBasedMultiTenantConnectionProviderImpl
- java.lang.Object
-
- org.hibernate.engine.jdbc.connections.spi.AbstractDataSourceBasedMultiTenantConnectionProviderImpl
-
- org.hibernate.engine.jdbc.connections.spi.DataSourceBasedMultiTenantConnectionProviderImpl
-
- All Implemented Interfaces:
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 -
"hibernate.connection.datasource" is a string naming either the any
data source or the base JNDI context. If the latter,
MultiTenancySettings.TENANT_IDENTIFIER_TO_USE_FOR_ANY_KEYmust also be set.
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static 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 DataSourceselectAnyDataSource()protected DataSourceselectDataSource(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 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 DataSource selectAnyDataSource()
- Specified by:
selectAnyDataSourcein classAbstractDataSourceBasedMultiTenantConnectionProviderImpl
-
selectDataSource
protected DataSource selectDataSource(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
-
-