/* * 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.userguide.multitenancy; import java.util.HashMap; import java.util.Map; import org.hibernate.engine.jdbc.connections.spi.AbstractMultiTenantConnectionProvider; import org.hibernate.engine.jdbc.connections.spi.ConnectionProvider; /** * @author Vlad Mihalcea */ //tag::multitenacy-hibernate-ConfigurableMultiTenantConnectionProvider-example[] public class ConfigurableMultiTenantConnectionProvider extends AbstractMultiTenantConnectionProvider { private final Map<String, ConnectionProvider> connectionProviderMap = new HashMap<>( ); public ConfigurableMultiTenantConnectionProvider( Map<String, ConnectionProvider> connectionProviderMap) { this.connectionProviderMap.putAll( connectionProviderMap ); } @Override protected ConnectionProvider getAnyConnectionProvider() { return connectionProviderMap.values().iterator().next(); } @Override protected ConnectionProvider selectConnectionProvider(String tenantIdentifier) { return connectionProviderMap.get( tenantIdentifier ); } } //end::multitenacy-hibernate-ConfigurableMultiTenantConnectionProvider-example[]