{"record":{"id":"d25c4d8bfd470788","repo":"hibernate/hibernate-orm","slug":"duplicate-identification-variable-s-in-from-c","errorCode":null,"errorMessage":"Duplicate identification variable '%s' in 'from' clause [%s%s]","messagePattern":"Duplicate identification variable '(.+?)' in 'from' clause \\[(.+?)(.+?)\\]","errorType":"exception","errorClass":"AliasCollisionException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java","lineNumber":132,"sourceCode":"\t\t}\n\t\telse if ( sqmFrom instanceof SqmJoin ) {\n\t\t\tkeyword = first ? \"join \" : \" join \";\n\t\t}\n\t\telse {\n\t\t\tkeyword = first ? \"\" : \", \";\n\t\t}\n\t\tfinal String path = sqmFrom.getNavigablePath().getLocalName();\n\t\tfinal String alias = sqmFrom.getExplicitAlias();\n\t\treturn keyword + (alias == null ? path : path + \" as \" + alias);\n\t}\n\n\t@Override\n\tpublic void registerByAliasOnly(SqmFrom<?, ?> sqmFrom) {\n\t\tfinal String alias = sqmFrom.getExplicitAlias();\n\t\tif ( alias != null ) {\n\t\t\tfinal var previousFrom = sqmFromByAlias.put( handleAliasCaseSensitivity( alias ), sqmFrom );\n\t\t\tif ( previousFrom != null ) {\n\t\t\t\tthrow new AliasCollisionException(\n\t\t\t\t\t\tString.format(\n\t\t\t\t\t\t\t\tLocale.ENGLISH,\n\t\t\t\t\t\t\t\t\"Duplicate identification variable '%s' in 'from' clause [%s%s]\",\n\t\t\t\t\t\t\t\talias,\n\t\t\t\t\t\t\t\tfromPath( previousFrom, true ),\n\t\t\t\t\t\t\t\tfromPath( sqmFrom, false )\n\t\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t@Override\n\tpublic <E> void replace(SqmEntityJoin<?,E> sqmJoin, SqmRoot<E> sqmRoot) {\n\t\tfinal String alias = sqmJoin.getExplicitAlias();\n\t\tif ( alias != null ) {\n\t\t\tfinal var previousFrom = sqmFromByAlias.put( handleAliasCaseSensitivity( alias ), sqmJoin );\n\t\t\tif ( previousFrom != null && !( previousFrom instanceof SqmRoot ) ) {","sourceCodeStart":114,"sourceCodeEnd":150,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SqmPathRegistryImpl.java#L114-L150","documentation":"Error \"Duplicate identification variable '%s' in 'from' clause [%s%s]\" thrown in hibernate/hibernate-orm.","triggerScenarios":"The same alias/identification variable is declared twice: Duplicate identification variable '<value>' in 'from' clause [<value><value>]","commonSituations":"HQL queries reusing an alias in the from/join clauses or a duplicate result alias in the select clause.","solutions":["The same identification variable is declared twice in the from clause. Rename one of the aliases so each from-clause element has a unique identification variable."],"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"}