hibernate/hibernate-orm · error · ConnectionProviderConfigurationException

Class '{}' does not implement 'MultiTenantConnectionProvider

Error message

Class '{}' does not implement 'MultiTenantConnectionProvider'

What it means

Error "Class '{}' does not implement 'MultiTenantConnectionProvider'" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java:81

		else if ( configValue instanceof MultiTenantConnectionProvider<?> multiTenantConnectionProvider ) {
			return multiTenantConnectionProvider;
		}
		else {
			final var providerClass = providerClass( registry, configValue );
			try {
				return providerClass.newInstance();
			}
			catch (Exception e) {
				throw new ServiceException( "Unable to instantiate specified multi-tenant connection provider [" + providerClass.getName() + "]", e );
			}
		}
	}

	private static Class<? extends MultiTenantConnectionProvider<?>> providerClass(
			ServiceRegistryImplementor registry, Object configValue) {
		if ( configValue instanceof Class<?> configType ) {
			if ( !MultiTenantConnectionProvider.class.isAssignableFrom( configType ) ) {
				throw new ConnectionProviderConfigurationException( "Class '" + configType.getName()
								+ "' does not implement 'MultiTenantConnectionProvider'" );
			}
			@SuppressWarnings("unchecked") // Safe, we just checked
			final var providerClass = (Class<? extends MultiTenantConnectionProvider<?>>) configType;
			return providerClass;
		}
		else {
			final String className = configValue.toString();
			final var classLoaderService = registry.requireService( ClassLoaderService.class );
			try {
				return classLoaderService.classForName( className );
			}
			catch (ClassLoadingException cle) {
				throw new ServiceException( "Unable to locate specified multi-tenant connection provider [" + className + "]", cle );
			}
		}
	}
}

View on GitHub (pinned to fad1729dce)

Solutions

  1. Make the configured class implement MultiTenantConnectionProvider
  2. Correct the 'hibernate.multi_tenant_connection_provider' setting

When it happens

Trigger: Thrown at hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java:81 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/4859c43c4a7462c4. Report an issue: GitHub.