{"record":{"id":"2930a576fb081afe","repo":"hibernate/hibernate-orm","slug":"assignment-referred-to-column-of-a-joined-associat-2930a5","errorCode":null,"errorMessage":"Assignment referred to column of a joined association: ${columnReference}","messagePattern":"Assignment referred to column of a joined association: (.+?)","errorType":"exception","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/cte/CteUpdateHandler.java","lineNumber":317,"sourceCode":"\t\t\tBiConsumer<String, TableReference> consumer) {\n\t\tconsumer.accept( tableReference.getIdentificationVariable(), tableReference );\n\t}\n\n\tprivate void collectTableReference(\n\t\t\tTableReferenceJoin tableReferenceJoin,\n\t\t\tBiConsumer<String, TableReference> consumer) {\n\t\tcollectTableReference( tableReferenceJoin.getJoinedTableReference(), consumer );\n\t}\n\n\tprivate TableReference resolveTableReference(\n\t\t\tColumnReference columnReference,\n\t\t\tMap<String, TableReference> tableReferenceByAlias) {\n\t\tfinal TableReference tableReferenceByQualifier = tableReferenceByAlias.get( columnReference.getQualifier() );\n\t\tif ( tableReferenceByQualifier != null ) {\n\t\t\treturn tableReferenceByQualifier;\n\t\t}\n\n\t\tthrow new SemanticException( \"Assignment referred to column of a joined association: \" + columnReference );\n\t}\n\n\t@Override\n\tprotected String getCteTableName(String tableExpression) {\n\t\tfinal Dialect dialect = getSessionFactory().getJdbcServices().getDialect();\n\t\tif ( Identifier.isQuoted( tableExpression ) ) {\n\t\t\ttableExpression = QualifiedNameParser.INSTANCE.parse( tableExpression ).getObjectName().getText();\n\t\t}\n\t\treturn Identifier.toIdentifier( UPDATE_RESULT_TABLE_NAME_PREFIX + tableExpression ).render( dialect );\n\t}\n\n\tprotected String getInsertCteTableName(String tableExpression) {\n\t\tfinal Dialect dialect = getSessionFactory().getJdbcServices().getDialect();\n\t\tif ( Identifier.isQuoted( tableExpression ) ) {\n\t\t\ttableExpression = tableExpression.substring( 1, tableExpression.length() - 1 );\n\t\t}\n\t\treturn Identifier.toIdentifier( INSERT_RESULT_TABLE_NAME_PREFIX + tableExpression ).render( dialect );\n\t}","sourceCodeStart":299,"sourceCodeEnd":335,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/cte/CteUpdateHandler.java#L299-L335","documentation":"Error \"Assignment referred to column of a joined association: ${columnReference}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An UPDATE/INSERT assignment targets columns that cannot be handled by the mutation strategy.","commonSituations":"Bulk HQL update/insert statements assigning columns spread across multiple tables or columns of joined associations.","solutions":["The UPDATE assignment targets a column of a joined (secondary table or joined-subclass) association, which inline update does not support.","Assign only columns of the root table, or use a different mutation strategy, or update the associated table separately."],"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"}