From 4e7e06f54911c9ecadff9d3c0c3a03c42602cb8a Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 20 Jul 2016 21:40:26 +0200 Subject: [PATCH] Reliably pass CurrentTenantIdentifierResolver to SessionFactory Issue: SPR-14476 --- .../orm/hibernate5/LocalSessionFactoryBuilder.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/spring-orm-hibernate5/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBuilder.java b/spring-orm-hibernate5/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBuilder.java index d345263046f..f74fb8ad7e0 100644 --- a/spring-orm-hibernate5/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBuilder.java +++ b/spring-orm-hibernate5/src/main/java/org/springframework/orm/hibernate5/LocalSessionFactoryBuilder.java @@ -43,6 +43,7 @@ import org.hibernate.boot.registry.BootstrapServiceRegistryBuilder; import org.hibernate.cfg.AvailableSettings; import org.hibernate.cfg.Configuration; import org.hibernate.cfg.Environment; +import org.hibernate.context.spi.CurrentTenantIdentifierResolver; import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider; import org.hibernate.engine.spi.SessionFactoryImplementor; @@ -206,6 +207,17 @@ public class LocalSessionFactoryBuilder extends Configuration { return this; } + /** + * Overridden to reliably pass a {@link CurrentTenantIdentifierResolver} to the SessionFactory. + * @since 4.3.2 + * @see AvailableSettings#MULTI_TENANT_IDENTIFIER_RESOLVER + */ + @Override + public void setCurrentTenantIdentifierResolver(CurrentTenantIdentifierResolver currentTenantIdentifierResolver) { + getProperties().put(AvailableSettings.MULTI_TENANT_IDENTIFIER_RESOLVER, currentTenantIdentifierResolver); + super.setCurrentTenantIdentifierResolver(currentTenantIdentifierResolver); + } + /** * Specify custom type filters for Spring-based scanning for entity classes. *

Default is to search all specified packages for classes annotated with