{"record":{"id":"94ad0cc0ee463e6b","repo":"hibernate/hibernate-orm","slug":"cannot-order-by-a-select-item-in-an-entity-query","errorCode":null,"errorMessage":"Cannot order by a select item in an entity query","messagePattern":"Cannot order by a select item in an entity query","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/Order.java","lineNumber":350,"sourceCode":"\t * @since 7.0\n\t */\n\tdefault Order<X> ignoringCaseIf(boolean ignoreCase) {\n\t\treturn ignoreCase ? ignoringCase() : this;\n\t}\n\n\t/**\n\t * Apply this order to the given root entity of the given\n\t * {@linkplain CriteriaQuery criteria query}.\n\t *\n\t * @since 8.0\n\t */\n\t@Incubating\n\tdefault void apply(CriteriaQuery<?> query, Root<?> root, CriteriaBuilder builder) {\n\t\trequireNonNull( query, \"missing query\" );\n\t\trequireNonNull( root, \"missing root\" );\n\t\trequireNonNull( builder, \"missing builder\" );\n\t\tif ( entityClass() == null ) {\n\t\t\tthrow new IllegalArgumentException( \"Cannot order by a select item in an entity query\" );\n\t\t}\n\t\tvar order = order( expression( root, builder ), builder );\n\t\tfinal var orders = new ArrayList<>( query.getOrderList() );\n\t\torders.add( order );\n\t\tquery.orderBy( orders );\n\t}\n\n\tprivate jakarta.persistence.criteria.Order order(\n\t\t\tExpression<?> expression,\n\t\t\tCriteriaBuilder builder) {\n\t\treturn direction() == DESCENDING\n\t\t\t\t? builder.desc( expression, nullPrecedence() )\n\t\t\t\t: builder.asc( expression, nullPrecedence() );\n\t}\n\n\tprivate Expression<?> expression(Root<?> root, CriteriaBuilder builder) {\n\t\tfinal var path = path( root, attributeName() );\n\t\treturn caseSensitive() ? path : builder.lower( path.as( String.class ) );","sourceCodeStart":332,"sourceCodeEnd":368,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/Order.java#L332-L368","documentation":"Error \"Cannot order by a select item in an entity query\" thrown in hibernate/hibernate-orm.","triggerScenarios":"The HQL/JPQL query violates a structural language rule.","commonSituations":"Writing queries with missing select/from, mismatched group by positions, or invalid ordering constructs.","solutions":["Order by an attribute path of the root entity instead of a select item.","Use a subquery or explicit path expression for the ordering."],"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"}