{"record":{"id":"4859c43c4a7462c4","repo":"hibernate/hibernate-orm","slug":"class-does-not-implement-multitenantconnecti","errorCode":null,"errorMessage":"Class '{}' does not implement 'MultiTenantConnectionProvider'","messagePattern":"Class '(.+?)' does not implement 'MultiTenantConnectionProvider'","errorType":"exception","errorClass":"ConnectionProviderConfigurationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java","lineNumber":81,"sourceCode":"\t\telse if ( configValue instanceof MultiTenantConnectionProvider<?> multiTenantConnectionProvider ) {\n\t\t\treturn multiTenantConnectionProvider;\n\t\t}\n\t\telse {\n\t\t\tfinal var providerClass = providerClass( registry, configValue );\n\t\t\ttry {\n\t\t\t\treturn providerClass.newInstance();\n\t\t\t}\n\t\t\tcatch (Exception e) {\n\t\t\t\tthrow new ServiceException( \"Unable to instantiate specified multi-tenant connection provider [\" + providerClass.getName() + \"]\", e );\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static Class<? extends MultiTenantConnectionProvider<?>> providerClass(\n\t\t\tServiceRegistryImplementor registry, Object configValue) {\n\t\tif ( configValue instanceof Class<?> configType ) {\n\t\t\tif ( !MultiTenantConnectionProvider.class.isAssignableFrom( configType ) ) {\n\t\t\t\tthrow new ConnectionProviderConfigurationException( \"Class '\" + configType.getName()\n\t\t\t\t\t\t\t\t+ \"' does not implement 'MultiTenantConnectionProvider'\" );\n\t\t\t}\n\t\t\t@SuppressWarnings(\"unchecked\") // Safe, we just checked\n\t\t\tfinal var providerClass = (Class<? extends MultiTenantConnectionProvider<?>>) configType;\n\t\t\treturn providerClass;\n\t\t}\n\t\telse {\n\t\t\tfinal String className = configValue.toString();\n\t\t\tfinal var classLoaderService = registry.requireService( ClassLoaderService.class );\n\t\t\ttry {\n\t\t\t\treturn classLoaderService.classForName( className );\n\t\t\t}\n\t\t\tcatch (ClassLoadingException cle) {\n\t\t\t\tthrow new ServiceException( \"Unable to locate specified multi-tenant connection provider [\" + className + \"]\", cle );\n\t\t\t}\n\t\t}\n\t}\n}","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java#L63-L99","documentation":"Error \"Class '{}' does not implement 'MultiTenantConnectionProvider'\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/engine/jdbc/connections/internal/MultiTenantConnectionProviderInitiator.java:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the configured class implement MultiTenantConnectionProvider","Correct the 'hibernate.multi_tenant_connection_provider' setting"],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}