{"record":{"id":"70220e9ebf56bde0","repo":"hibernate/hibernate-orm","slug":"selectionspecification-only-supports-hql-or-criter","errorCode":null,"errorMessage":"SelectionSpecification only supports HQL or criteria query references: {}","messagePattern":"SelectionSpecification only supports HQL or criteria query references: (.+?)","errorType":"exception","errorClass":"IllegalSelectQueryException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/specification/internal/SelectionSpecificationImpl.java","lineNumber":388,"sourceCode":"\t\t\t\t\tsqmMemento.getHqlString()\n\t\t\t);\n\t\t}\n\t}\n\n\t@Nonnull\n\tprivate static <T> NamedSqmQueryMemento<T> resolveSqmSelectionMemento(\n\t\t\t@Nonnull TypedQueryReference<? super T> typedQueryReference,\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( typedQueryReference.getName(), false );\n\t\tif ( namedMemento instanceof NamedSelectionMemento<T>\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 IllegalSelectQueryException(\n\t\t\t\t\t\"SelectionSpecification only supports HQL or criteria query references: \"\n\t\t\t\t\t\t\t+ typedQueryReference.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 SqmRoot<? extends T> extractRoot(\n\t\t\t@Nonnull SqmSelectStatement<T> sqmStatement,\n\t\t\t@Nonnull Class<T> resultType,\n\t\t\t@Nonnull String hql) {\n\t\tfinal var sqmRoots = sqmStatement.getQuerySpec().getRoots();\n\t\tif ( sqmRoots.isEmpty() ) {\n\t\t\tthrow new QueryException( \"Query did not define any roots\", hql );","sourceCodeStart":370,"sourceCodeEnd":406,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/specification/internal/SelectionSpecificationImpl.java#L370-L406","documentation":"Error \"SelectionSpecification only supports HQL or criteria query references: {}\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A Specification is given a statement of the wrong kind: SelectionSpecification only supports HQL or criteria query references: <value>","commonSituations":"Passing a select statement to MutationSpecification or a mutation statement to SelectionSpecification.","solutions":["SelectionSpecification only supports HQL or criteria query references. Pass an HQL or criteria selection 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"}