{"record":{"id":"d9509df8bf5b8f19","repo":"hibernate/hibernate-orm","slug":"mutationspecification-only-supports-hql-or-criteri","errorCode":null,"errorMessage":"MutationSpecification only supports HQL or criteria statement references: {}","messagePattern":"MutationSpecification only supports HQL or criteria statement references: (.+?)","errorType":"exception","errorClass":"IllegalMutationQueryException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java","lineNumber":346,"sourceCode":"\t\t\t);\n\t\t}\n\n\t}\n\n\t@Nonnull\n\tprivate static <T> NamedSqmQueryMemento<T> resolveSqmMutationMemento(\n\t\t\t@Nonnull StatementReference statementReference,\n\t\t\t@Nonnull QueryEngine queryEngine) {\n\t\tfinal NamedQueryMemento<T> namedMemento =\n\t\t\t\tqueryEngine.getNamedObjectRepository()\n\t\t\t\t\t\t// FIXME: unchecked cast\n\t\t\t\t\t\t.getQueryMementoByName( statementReference.getName(), false );\n\t\tif ( namedMemento instanceof NamedMutationMemento<?>\n\t\t\t\t&& namedMemento instanceof NamedSqmQueryMemento<T> sqmMemento ) {\n\t\t\treturn sqmMemento;\n\t\t}\n\t\telse {\n\t\t\tthrow new IllegalMutationQueryException(\n\t\t\t\t\t\"MutationSpecification only supports HQL or criteria statement references: \"\n\t\t\t\t\t\t\t+ statementReference.getName()\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Used during construction. Mainly used to group extracting and\n\t * validating the root.\n\t */\n\t@Nonnull\n\tprivate static <T> SqmRoot<T> resolveSqmRoot(\n\t\t\t@Nonnull SqmDeleteOrUpdateStatement<T> sqmStatement,\n\t\t\t@Nonnull Class<T> mutationTarget) {\n\t\tfinal var mutationTargetRoot = sqmStatement.getTarget();\n\t\tfinal var javaType = mutationTargetRoot.getJavaType();\n\t\tif ( javaType != null && !mutationTarget.isAssignableFrom( javaType ) ) {\n\t\t\tthrow new IllegalArgumentException(","sourceCodeStart":328,"sourceCodeEnd":364,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/specification/internal/MutationSpecificationImpl.java#L328-L364","documentation":"Error \"MutationSpecification only supports HQL or criteria statement references: {}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A Specification is given a statement of the wrong kind: MutationSpecification only supports HQL or criteria statement references: <value>","commonSituations":"Passing a select statement to MutationSpecification or a mutation statement to SelectionSpecification.","solutions":["MutationSpecification only supports HQL or criteria statement references. Pass an HQL or criteria mutation reference."],"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"}