{"record":{"id":"7be69d0627d564ac","repo":"hibernate/hibernate-orm","slug":"no-jdbctypeconstructor-registered-for-sqltypes-s","errorCode":null,"errorMessage":"No JdbcTypeConstructor registered for SqlTypes.%s","messagePattern":"No JdbcTypeConstructor registered for SqlTypes\\.(.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java","lineNumber":311,"sourceCode":"\t\tfinal var jdbcTypeRegistry = typeConfiguration.getJdbcTypeRegistry();\n\t\tfinal var aggregateJdbcType = jdbcTypeRegistry.resolveAggregateDescriptor(\n\t\t\t\taggregateSqlTypeCode,\n\t\t\t\tstructTypeName,\n\t\t\t\tthis,\n\t\t\t\tcreationContext\n\t\t);\n\t\tfinal var basicType = basicTypeRegistry.resolve( getMappedJavaType(), aggregateJdbcType );\n\t\t// Register the resolved type under its struct name and java class name\n\t\tfinal var structName = bootDescriptor.getStructName();\n\t\tif ( structName != null ) {\n\t\t\tbasicTypeRegistry.register( basicType, structName.render() );\n\t\t\tbasicTypeRegistry.register( basicType, getMappedJavaType().getJavaTypeClass().getName() );\n\t\t}\n\t\tfinal BasicType<?> resolvedJdbcMapping;\n\t\tif ( isArray ) {\n\t\t\tfinal var arrayConstructor = jdbcTypeRegistry.getConstructor( aggregateColumnSqlTypeCode );\n\t\t\tif ( arrayConstructor == null ) {\n\t\t\t\tthrow new IllegalArgumentException( \"No JdbcTypeConstructor registered for SqlTypes.\" + JdbcTypeNameMapper.getTypeName( aggregateColumnSqlTypeCode ) );\n\t\t\t}\n\t\t\t//noinspection rawtypes,unchecked\n\t\t\tfinal BasicType<?> arrayType =\n\t\t\t\t\t( (BasicPluralJavaType) resolution.getDomainJavaType() )\n\t\t\t\t\t\t\t.resolveType(\n\t\t\t\t\t\t\t\t\ttypeConfiguration,\n\t\t\t\t\t\t\t\t\tcreationContext.getDialect(),\n\t\t\t\t\t\t\t\t\tbasicType,\n\t\t\t\t\t\t\t\t\taggregateColumn,\n\t\t\t\t\t\t\t\t\ttypeConfiguration.getCurrentBaseSqlTypeIndicators()\n\t\t\t\t\t\t\t);\n\t\t\tbasicTypeRegistry.register( arrayType );\n\t\t\tresolvedJdbcMapping = arrayType;\n\t\t}\n\t\telse {\n\t\t\tresolvedJdbcMapping = basicType;\n\t\t}\n\t\tresolution.updateResolution( resolvedJdbcMapping );","sourceCodeStart":293,"sourceCodeEnd":329,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/EmbeddableMappingTypeImpl.java#L293-L329","documentation":"Error \"No JdbcTypeConstructor registered for SqlTypes.%s\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown during mapping model creation when no JdbcTypeConstructor is registered for the JDBC type code used by an embeddable attribute.","commonSituations":"See trigger scenarios.","solutions":["Register a JdbcTypeConstructor for the JDBC type code in the TypeConfiguration, or use a different @JdbcTypeCode that has a registered constructor."],"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"}