hibernate/hibernate-orm · error · IllegalStateException

Delete query cannot perform assignment

Error message

Delete query cannot perform assignment

What it means

Error "Delete query cannot perform assignment" thrown in hibernate/hibernate-orm.

Source

Thrown at hibernate-core/src/main/java/org/hibernate/query/specification/internal/UpdateSpecificationImpl.java:40

		implements UpdateSpecification<T> {

	public UpdateSpecificationImpl(@Nonnull Class<T> mutationTarget) {
		super( MutationType.UPDATE, mutationTarget );
	}

	public UpdateSpecificationImpl(@Nonnull CriteriaUpdate<T> criteriaQuery) {
		super( criteriaQuery );
	}

	@Nonnull
	@Override
	public UpdateSpecification<T> assign(@Nonnull Assignment<? super T> assignment) {
		specifications.add( (sqmStatement, mutationTargetRoot) -> {
			if ( sqmStatement instanceof SqmUpdateStatement<T> sqmUpdateStatement ) {
				assignment.apply( sqmUpdateStatement );
			}
			else {
				throw new IllegalStateException( "Delete query cannot perform assignment" );
			}
		} );
		return this;
	}

	@Nonnull
	@Override
	public UpdateSpecification<T> reassign(@Nonnull List<? extends Assignment<? super T>> assignments) {
		specifications.add( (sqmStatement, mutationTargetRoot) -> {
			if ( sqmStatement instanceof SqmUpdateStatement<T> sqmUpdateStatement ) {
				final var setClause = sqmUpdateStatement.getSetClause();
				if ( setClause != null ) {
					setClause.clearAssignments();
				}
				assignments.forEach( assignment -> assignment.apply( sqmUpdateStatement ) );
			}
			else {
				throw new IllegalStateException( "Delete query cannot perform assignment" );

View on GitHub (pinned to fad1729dce)

Solutions

  1. A delete specification cannot perform assignments. Use an update specification for assignments.

When it happens

Trigger: An assignment is added to a delete Specification: Delete query cannot perform assignment

Common situations: Calling set()/assignment on an UpdateSpecification that targets a delete statement.


AI-assisted analysis of hibernate/hibernate-orm@fad1729dce (2026-08-22). Data as JSON: /api/errors/3f4644c26e2c7c05. Report an issue: GitHub.