{"record":{"id":"a1e79ef00c262cca","repo":"hibernate/hibernate-orm","slug":"expecting-basicpluraljavatype-for-array-class","errorCode":null,"errorMessage":"Expecting BasicPluralJavaType for array class '{}[]', but got '{}'","messagePattern":"Expecting BasicPluralJavaType for array class '(.+?)\\[\\]', but got '(.+?)'","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java","lineNumber":43,"sourceCode":"\n\tpublic static JdbcMapping resolveArrayJdbcMapping(\n\t\t\tJdbcMapping keyMapping,\n\t\t\tClass<?> elementClass,\n\t\t\tSessionFactoryImplementor sessionFactory) {\n\t\tfinal var arrayBasicType =\n\t\t\t\tsessionFactory.getTypeConfiguration().getBasicTypeRegistry()\n\t\t\t\t\t\t.getRegisteredArrayType( elementClass );\n\t\tif ( arrayBasicType != null ) {\n\t\t\treturn arrayBasicType;\n\t\t}\n\n\t\tfinal var typeConfiguration = sessionFactory.getTypeConfiguration();\n\n\t\tfinal var rawArrayJavaType =\n\t\t\t\ttypeConfiguration.getJavaTypeRegistry()\n\t\t\t\t\t\t.resolveArrayDescriptor( elementClass );\n\t\tif ( !(rawArrayJavaType instanceof BasicPluralJavaType<?> arrayJavaType ) ) {\n\t\t\tthrow new IllegalArgumentException( \"Expecting BasicPluralJavaType for array class '\"\n\t\t\t\t\t\t\t\t\t\t\t\t+ elementClass.getTypeName() + \"[]', but got '\"\n\t\t\t\t\t\t\t\t\t\t\t\t+ rawArrayJavaType + \"'\" );\n\t\t}\n\n\t\t//noinspection unchecked,rawtypes\n\t\treturn arrayJavaType.resolveType(\n\t\t\t\ttypeConfiguration,\n\t\t\t\tsessionFactory.getJdbcServices().getDialect(),\n\t\t\t\t// potentially problematic - custom id type\n\t\t\t\t(BasicType) keyMapping,\n\t\t\t\tnull,\n\t\t\t\ttypeConfiguration.getCurrentBaseSqlTypeIndicators()\n\t\t);\n\t}\n\n\tstatic int countIds(Object[] ids) {\n\t\tint count = 0;\n\t\tfor ( int i=1; i<ids.length; i++ ) {","sourceCodeStart":25,"sourceCodeEnd":61,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java#L25-L61","documentation":"Error \"Expecting BasicPluralJavaType for array class '{}[]', but got '{}'\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/loader/ast/internal/MultiKeyLoadHelper.java:43 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Map the array attribute with a supported basic plural type; check the @JdbcTypeCode/type mapping for the array."],"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"}