{"record":{"id":"fccec192d56478df","repo":"hibernate/hibernate-orm","slug":"encountered-a-duplicated-sql-alias-during-aut","errorCode":null,"errorMessage":"Encountered a duplicated sql alias [{}] during auto-discovery of a native-sql query","messagePattern":"Encountered a duplicated sql alias \\[(.+?)\\] during auto-discovery of a native-sql query","errorType":"exception","errorClass":"NonUniqueDiscoveredSqlAliasException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/results/internal/ResultSetMappingImpl.java","lineNumber":258,"sourceCode":"\t\t\t\t\taddColumns( aliases, knownDuplicateAliases,\n\t\t\t\t\t\t\tpersister.getSubclassPropertyColumnNames( i ) );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfinal var aliases = new String[rowSize];\n\t\tfinal Map<String, Boolean> aliasHasDuplicates = new HashMap<>( rowSize );\n\t\tfor ( int i = 0; i < rowSize; i++ ) {\n\t\t\taliasHasDuplicates.compute(\n\t\t\t\t\taliases[i] = jdbcResultsMetadata.resolveColumnName( i + 1 ),\n\t\t\t\t\t(k, v) -> v == null ? Boolean.FALSE : Boolean.TRUE\n\t\t\t);\n\t\t}\n\t\t// Only check for duplicates for the selections that we actually use\n\t\tfor ( var sqlSelection : sqlSelections ) {\n\t\t\tfinal String alias = aliases[sqlSelection.getValuesArrayPosition()];\n\t\t\tif ( !knownDuplicateAliases.contains( alias )\n\t\t\t\t\t&& aliasHasDuplicates.get( alias ) == Boolean.TRUE ) {\n\t\t\t\tthrow new NonUniqueDiscoveredSqlAliasException(\n\t\t\t\t\t\t\"Encountered a duplicated sql alias [\" + alias + \"] during auto-discovery of a native-sql query\"\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate List<DomainResult<?>> collectDomainResults(\n\t\t\tJdbcValuesMetadata jdbcResultsMetadata,\n\t\t\tSessionFactoryImplementor sessionFactory,\n\t\t\tint numberOfResults,\n\t\t\tList<SqlSelection> sqlSelections,\n\t\t\tDomainResultCreationStateImpl creationState) {\n\t\tfinal List<DomainResult<?>> domainResults = new ArrayList<>( numberOfResults );\n\t\tfor ( int i = 0; i < numberOfResults; i++ ) {\n\t\t\tfinal var domainResult =\n\t\t\t\t\tbuildDomainResult(\n\t\t\t\t\t\t\tjdbcResultsMetadata,\n\t\t\t\t\t\t\tsessionFactory,","sourceCodeStart":240,"sourceCodeEnd":276,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/results/internal/ResultSetMappingImpl.java#L240-L276","documentation":"Error \"Encountered a duplicated sql alias [{}] during auto-discovery of a native-sql query\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A runtime precondition of the Hibernate query API is violated: Encountered a duplicated sql alias [<value>] during auto-discovery of a native-sql query","commonSituations":"Application code or configuration calls the query API in a way that violates its documented contract; the interpolated values in the message identify the offending input.","solutions":["A SQL alias appeared twice during auto-discovery of the native query. Give each selected column a unique alias."],"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-22T14:17:55.899Z"}