{"record":{"id":"27d9398735721161","repo":"hibernate/hibernate-orm","slug":"transforming-xml-array-to-native-arrays-is-not-sup-27d939","errorCode":null,"errorMessage":"Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!","messagePattern":"Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/dialect/aggregate/PostgreSQLAggregateSupport.java","lineNumber":153,"sourceCode":"\t\t\t\t\t\tif ( typeConfiguration.getCurrentBaseSqlTypeIndicators().isXmlFormatMapperLegacyFormatEnabled() ) {\n\t\t\t\t\t\t\tthrow new IllegalArgumentException( \"XML array '\" + columnExpression + \"' in '\" + aggregateParentReadExpression + \"' is not supported with legacy format enabled.\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treturn template.replace(\n\t\t\t\t\t\t\t\t\tplaceholder,\n\t\t\t\t\t\t\t\t\t\"xmlelement(name \\\"Collection\\\",(select xmlagg(t.v order by t.i) from xmltable(\" + xmlExtractArguments( aggregateParentReadExpression, columnExpression + \"/*\" ) + \" columns v xml path '.', i for ordinality)t))\"\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\tcase BINARY:\n\t\t\t\t\tcase VARBINARY:\n\t\t\t\t\tcase LONG32VARBINARY:\n\t\t\t\t\t\t// We encode binary data as hex, so we have to decode here\n\t\t\t\t\t\treturn template.replace(\n\t\t\t\t\t\t\t\tplaceholder,\n\t\t\t\t\t\t\t\t\"decode((select t.v from xmltable(\" + xmlExtractArguments( aggregateParentReadExpression, columnExpression )+ \" columns v text path '.') t),'hex')\"\n\t\t\t\t\t\t);\n\t\t\t\t\tcase ARRAY:\n\t\t\t\t\t\tthrow new UnsupportedOperationException( \"Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!\" );\n\t\t\t\t\tdefault:\n\t\t\t\t\t\treturn template.replace(\n\t\t\t\t\t\t\t\tplaceholder,\n\t\t\t\t\t\t\t\t\"(select t.v from xmltable(\" + xmlExtractArguments( aggregateParentReadExpression, columnExpression ) + \" columns v \" + getCastTypeName( column, typeConfiguration ) + \" path '.') t)\"\n\t\t\t\t\t\t);\n\t\t\t\t}\n\t\t\tcase STRUCT:\n\t\t\tcase STRUCT_ARRAY:\n\t\t\tcase STRUCT_TABLE:\n\t\t\t\treturn template.replace( placeholder, '(' + aggregateParentReadExpression + \").\" + columnExpression );\n\t\t}\n\t\tthrow new IllegalArgumentException( \"Unsupported aggregate SQL type: \" + aggregateColumnTypeCode );\n\t}\n\n\tprivate static String xmlExtractArguments(String aggregateParentReadExpression, String xpathFragment) {\n\t\tfinal String extractArguments;\n\t\tint separatorIndex;\n\t\tif ( aggregateParentReadExpression.startsWith( XML_EXTRACT_START )","sourceCodeStart":135,"sourceCodeEnd":171,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/dialect/aggregate/PostgreSQLAggregateSupport.java#L135-L171","documentation":"Error \"Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Triggered when the application calls a Hibernate dialect feature that the configured database dialect cannot provide: Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!.","commonSituations":"Common when running against a database whose dialect lacks this capability, when a mapping or HQL/Criteria query requests unsupported functionality, or when the wrong dialect is configured for the database in use. Error: Transforming XML_ARRAY to native arrays is not supported on PostgreSQL!.","solutions":["Map the collection as XML instead of a native 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"}