hibernate/hibernate-orm · error · SemanticException
Assignment referred to columns from multiple tables: ${assig
Error message
Assignment referred to columns from multiple tables: ${assignment.getAssignable()} What it means
Error "Assignment referred to columns from multiple tables: ${assignment.getAssignable()}" thrown in hibernate/hibernate-orm.
Source
Thrown at hibernate-core/src/main/java/org/hibernate/query/sqm/mutation/internal/temptable/TableBasedUpdateHandler.java:233
if ( sessionUidParameter != null ) {
jdbcParameterBindings.addBinding( sessionUidParameter,
new JdbcParameterBindingImpl( idTable.getSessionUidColumn().getJdbcMapping(),
UUID.fromString( sessionUidAccess.apply( context.getSession() ) ) ) );
}
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// segment the assignments by table-reference
for ( int i = 0; i < assignments.size(); i++ ) {
final var assignment = assignments.get( i );
final var assignmentColumnRefs = assignment.getAssignable().getColumnReferences();
TableReference assignmentTableReference = null;
for ( int c = 0; c < assignmentColumnRefs.size(); c++ ) {
final var columnReference = assignmentColumnRefs.get( c );
final var tableReference = resolveTableReference( columnReference, tableReferenceByAlias );
if ( assignmentTableReference != null && assignmentTableReference != tableReference ) {
throw new SemanticException( "Assignment referred to columns from multiple tables: "
+ assignment.getAssignable() );
}
assignmentTableReference = tableReference;
}
assignmentsByTable.computeIfAbsent( assignmentTableReference, k -> new ArrayList<>() )
.add( assignment );
}
final var executionContext = omittingLockingAndPaging( context );
this.matchingIdsIntoIdTableInsert = createMatchingIdsIntoIdTableInsert(
converterDelegate,
suppliedPredicate,
idTable,
sessionUidParameter,
jdbcParameterBindings,
executionContext
);
View on GitHub (pinned to fad1729dce)
Solutions
- An UPDATE assignment referred to columns from multiple tables.
- Restrict each update's assignments to columns of a single table, or split into multiple updates.
When it happens
Trigger: An UPDATE/INSERT assignment targets columns that cannot be handled by the mutation strategy.
Common situations: Bulk HQL update/insert statements assigning columns spread across multiple tables or columns of joined associations.
AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22).
Data as JSON: /api/errors/42269359c8783fc2.
Report an issue: GitHub.