|
|
|
@ -29,6 +29,7 @@ import org.hibernate.boot.model.naming.PhysicalNamingStrategy; |
|
|
|
|
import org.hibernate.boot.registry.BootstrapServiceRegistryBuilder; |
|
|
|
|
import org.hibernate.cfg.Configuration; |
|
|
|
|
import org.hibernate.context.spi.CurrentTenantIdentifierResolver; |
|
|
|
|
import org.hibernate.engine.jdbc.connections.spi.MultiTenantConnectionProvider; |
|
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.DisposableBean; |
|
|
|
|
import org.springframework.beans.factory.FactoryBean; |
|
|
|
@ -85,6 +86,8 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator |
|
|
|
|
|
|
|
|
|
private Object jtaTransactionManager; |
|
|
|
|
|
|
|
|
|
private MultiTenantConnectionProvider multiTenantConnectionProvider; |
|
|
|
|
|
|
|
|
|
private CurrentTenantIdentifierResolver currentTenantIdentifierResolver; |
|
|
|
|
|
|
|
|
|
private TypeFilter[] entityTypeFilters; |
|
|
|
@ -238,6 +241,15 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator |
|
|
|
|
this.jtaTransactionManager = jtaTransactionManager; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Set a {@link MultiTenantConnectionProvider} to be passed on to the SessionFactory. |
|
|
|
|
* @since 4.3 |
|
|
|
|
* @see LocalSessionFactoryBuilder#setMultiTenantConnectionProvider |
|
|
|
|
*/ |
|
|
|
|
public void setMultiTenantConnectionProvider(MultiTenantConnectionProvider multiTenantConnectionProvider) { |
|
|
|
|
this.multiTenantConnectionProvider = multiTenantConnectionProvider; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Set a {@link CurrentTenantIdentifierResolver} to be passed on to the SessionFactory. |
|
|
|
|
* @see LocalSessionFactoryBuilder#setCurrentTenantIdentifierResolver |
|
|
|
@ -251,7 +263,6 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator |
|
|
|
|
* <p>Default is to search all specified packages for classes annotated with |
|
|
|
|
* {@code @javax.persistence.Entity}, {@code @javax.persistence.Embeddable} |
|
|
|
|
* or {@code @javax.persistence.MappedSuperclass}. |
|
|
|
|
* @since 4.2 |
|
|
|
|
* @see #setPackagesToScan |
|
|
|
|
*/ |
|
|
|
|
public void setEntityTypeFilters(TypeFilter... entityTypeFilters) { |
|
|
|
@ -444,6 +455,10 @@ public class LocalSessionFactoryBean extends HibernateExceptionTranslator |
|
|
|
|
sfb.setJtaTransactionManager(this.jtaTransactionManager); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (this.multiTenantConnectionProvider != null) { |
|
|
|
|
sfb.setMultiTenantConnectionProvider(this.multiTenantConnectionProvider); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (this.currentTenantIdentifierResolver != null) { |
|
|
|
|
sfb.setCurrentTenantIdentifierResolver(this.currentTenantIdentifierResolver); |
|
|
|
|
} |
|
|
|
|