public void forceConfigurationSettings(Map<String, Object> settings) { if ( multitenancyEnabled ) { settings.remove( org.hibernate.cfg.Environment.HBM2DDL_AUTO ); settings.put( AvailableSettings.MULTI_TENANT, MultiTenancyStrategy.DATABASE.name() ); } }
@Override protected void additionalProperties(Properties properties) { properties.setProperty(AvailableSettings.HBM2DDL_AUTO, "none"); properties.setProperty(AvailableSettings.MULTI_TENANT, MultiTenancyStrategy.SCHEMA.name()); properties.setProperty(AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER, TenantContext.TenantIdentifierResolver.class.getName()); properties.put(AvailableSettings.MULTI_TENANT_CONNECTION_PROVIDER, MultiTenantConnectionProvider.INSTANCE); }
@Override protected void additionalProperties(Properties properties) { properties.setProperty(AvailableSettings.HBM2DDL_AUTO, "none"); properties.setProperty(AvailableSettings.SHOW_SQL, "true"); properties.setProperty(AvailableSettings.MULTI_TENANT, MultiTenancyStrategy.DATABASE.name()); properties.put(AvailableSettings.MULTI_TENANT_CONNECTION_PROVIDER, MultiTenantConnectionProvider.INSTANCE); properties.setProperty(AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER, TenantContext.TenantIdentifierResolver.class.getName()); }
/** * Configures the Hibernate JPA service with multi-tenant support enabled. * @param builder * @return */ @PersistenceContext @Primary @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) { Map<String, Object> props = new HashMap<>(); props.put("hibernate.multiTenancy", MultiTenancyStrategy.DATABASE.name()); props.put("hibernate.multi_tenant_connection_provider", dsProvider); props.put("hibernate.tenant_identifier_resolver", tenantResolver); LocalContainerEntityManagerFactoryBean result = builder.dataSource(dataSource()) .persistenceUnit(MultiTenantConstants.TENANT_KEY) .properties(props) .packages("demo").build(); result.setJpaVendorAdapter(jpaVendorAdapter()); return result; }