{"record":{"id":"623af93872dd0ba4","repo":"hibernate/hibernate-orm","slug":"assignment-referred-to-columns-from-multiple-table-623af9","errorCode":null,"errorMessage":"Assignment referred to columns from multiple tables: ${i}","messagePattern":"Assignment referred to columns from multiple tables: (.+?)","errorType":"exception","errorClass":"SemanticException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/temptable/TableBasedInsertHandler.java","lineNumber":374,"sourceCode":"\t\t\t);\n\t\t}\n\n\n\t\t// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\t\t// segment the assignments by table-reference\n\n\t\tfor ( int i = 0; i < targetPathColumns.size(); i++ ) {\n\t\t\tfinal var assignment = targetPathColumns.get( i );\n\t\t\tfinal var assignable = assignment.getAssignable();\n\t\t\tfinal var assignmentColumnRefs = assignable.getColumnReferences();\n\n\t\t\tTableReference assignmentTableReference = null;\n\t\t\tfor ( int c = 0; c < assignmentColumnRefs.size(); c++ ) {\n\t\t\t\tfinal var columnReference = assignmentColumnRefs.get( c );\n\t\t\t\tfinal var tableReference = resolveTableReference( columnReference, tableReferenceByAlias );\n\n\t\t\t\tif ( assignmentTableReference != null && assignmentTableReference != tableReference ) {\n\t\t\t\t\tthrow new SemanticException( \"Assignment referred to columns from multiple tables: \" + i );\n\t\t\t\t}\n\t\t\t\tassignmentTableReference = tableReference;\n\t\t\t}\n\n\t\t\tassignmentsByTable.computeIfAbsent(\n\t\t\t\t\tassignmentTableReference == null\n\t\t\t\t\t\t\t? null\n\t\t\t\t\t\t\t: assignmentTableReference.getTableId(),\n\t\t\t\t\tk -> new ArrayList<>() ).add( assignment );\n\t\t}\n\n\t\tthis.temporaryTableInsert =\n\t\t\t\tcreateTemporaryTableInsert(\n\t\t\t\t\t\tinsertStatement,\n\t\t\t\t\t\tjdbcParameterBindings,\n\t\t\t\t\t\texecutionContext\n\t\t\t\t);\n","sourceCodeStart":356,"sourceCodeEnd":392,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/temptable/TableBasedInsertHandler.java#L356-L392","documentation":"Error \"Assignment referred to columns from multiple tables: ${i}\" 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":["An INSERT assignment referred to columns from multiple tables.","Restrict each insert's assignments to columns of a single table, or split into multiple inserts."],"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"}