{"record":{"id":"718d8f7c2f5650f2","repo":"hibernate/hibernate-orm","slug":"mutationquery-cannot-be-treated-as-selectionquery","errorCode":null,"errorMessage":"MutationQuery cannot be treated as SelectionQuery","messagePattern":"MutationQuery cannot be treated as SelectionQuery","errorType":"exception","errorClass":"IllegalSelectQueryException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/internal/MutationQueryImpl.java","lineNumber":113,"sourceCode":"\t\t\tSharedSessionContractImplementor session) {\n\t\tsuper( session );\n\t\tthis.hql = hql;\n\t\tthis.queryStringCacheKey = hql;\n\n\t\tthis.sqm = SqmUtil.asDmlStatement( hqlInterpretation.getSqmStatement(), hql );\n\t\tthis.targetType = determineTargetType( targetType, sqm.getTarget().getNodeJavaType().getJavaTypeClass() );\n\n\t\tthis.parameterMetadata = hqlInterpretation.getParameterMetadata();\n\t\tthis.domainParameterXref = hqlInterpretation.getDomainParameterXref();\n\t\tthis.parameterBindings = parameterMetadata.createBindings( session.getFactory() );\n\n\t\tvalidateQuery( sqm, hql );\n\t}\n\n\t@Override\n\t@Nonnull\n\tpublic <R> SelectionQueryImplementor<R> withResultSetMapping(@Nonnull ResultSetMapping<R> mapping) {\n\t\tthrow new IllegalSelectQueryException( \"MutationQuery cannot be treated as SelectionQuery\", hql );\n\t}\n\n\tprivate static <R> void validateQuery(SqmDmlStatement<R> sqm, String hql) {\n\t\tif ( sqm instanceof AbstractSqmDmlStatement<R> abstractSqm ) {\n\t\t\tabstractSqm.validate( hql );\n\t\t}\n\t}\n\n\t@SuppressWarnings(\"unchecked\")\n\tprivate static <X> Class<X> determineTargetType(Class<?> providedType, Class<?> sqmTargetType) {\n\t\tif ( providedType != null && !Object.class.equals( providedType ) ) {\n\t\t\treturn (Class<X>) providedType;\n\t\t}\n\t\telse {\n\t\t\treturn (Class<X>) sqmTargetType;\n\t\t}\n\t}\n","sourceCodeStart":95,"sourceCodeEnd":131,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/internal/MutationQueryImpl.java#L95-L131","documentation":"Error \"MutationQuery cannot be treated as SelectionQuery\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A selection-only operation is invoked on a mutation (insert/update/delete) query: MutationQuery cannot be treated as SelectionQuery","commonSituations":"Calling getResultList()/scroll()/unwrap(SelectionQuery) on a Query created from an update/delete/insert HQL statement, or vice versa.","solutions":["A mutation (insert/update/delete) query cannot be used as a selection query. Use a select query for reading results."],"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"}