This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch merge-hibernate6
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 1b2d7705894a33e564179f879af2cdc9397fb453
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Jun 21 13:10:11 2025 -0500

    Fix order by non-string column
---
 .../grails/orm/hibernate/query/AbstractHibernateQuery.java   | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateQuery.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateQuery.java
index eadffa0e10..c165cd758c 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateQuery.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/AbstractHibernateQuery.java
@@ -14,7 +14,6 @@
  */
 package org.grails.orm.hibernate.query;
 
-import grails.gorm.DetachedCriteria;
 import grails.gorm.DetachedCriteria;
 import groovy.lang.Closure;
 import groovy.util.logging.Slf4j;
@@ -33,17 +32,13 @@ import org.grails.datastore.mapping.proxy.ProxyHandler;
 import org.grails.datastore.mapping.query.AssociationQuery;
 import org.grails.orm.hibernate.proxy.HibernateProxyHandler;
 import org.grails.datastore.mapping.query.Query;
-import org.grails.datastore.mapping.query.QueryException;
-import org.grails.datastore.mapping.query.Restrictions;
 import org.grails.datastore.mapping.query.api.QueryableCriteria;
 import org.grails.orm.hibernate.AbstractHibernateSession;
 import org.grails.orm.hibernate.IHibernateTemplate;
 import org.hibernate.NonUniqueResultException;
 import org.hibernate.SessionFactory;
-import org.hibernate.query.ResultListTransformer;
 import org.hibernate.query.criteria.HibernateCriteriaBuilder;
 import org.hibernate.query.criteria.JpaExpression;
-import org.hibernate.query.sqm.PathElementException;
 import org.hibernate.transform.ResultTransformer;
 import org.springframework.core.convert.ConversionService;
 import org.springframework.core.convert.support.DefaultConversionService;
@@ -56,7 +51,6 @@ import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
-import java.util.Optional;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.function.Function;
 import java.util.function.Predicate;
@@ -531,7 +525,7 @@ public abstract class AbstractHibernateQuery extends Query {
         Map<String, From> tablesByName = assignJoinTables(joinColumns, 
root,aliasMap, fromMap);
         assignProjections(projections, cb, root, cq, tablesByName);
         assignGroupBy(groupProjections, root, cq, tablesByName);
-        assignOrderBy(cq, cb, root,tablesByName);
+        assignOrderBy(cq, cb, tablesByName);
         assignCriteria(cq, cb, root,tablesByName);
 
         org.hibernate.query.Query query = getSessionFactory()
@@ -608,14 +602,14 @@ public abstract class AbstractHibernateQuery extends 
Query {
         }
     }
 
-    private void assignOrderBy(CriteriaQuery cq, HibernateCriteriaBuilder cb, 
From root, Map<String, From> tablesByName) {
+    private void assignOrderBy(CriteriaQuery cq, HibernateCriteriaBuilder cb, 
Map<String, From> tablesByName) {
         List<Order> orders = detachedCriteria.getOrders();
         if (!orders.isEmpty()) {
             cq.orderBy(orders
                     .stream()
                     .map(order -> {
                         Path expression = getFullyQualifiedPath(tablesByName, 
order.getProperty());
-                        if (order.isIgnoreCase()) {
+                        if (order.isIgnoreCase() && 
expression.getJavaType().equals(String.class)) {
                             if 
(order.getDirection().equals(Order.Direction.ASC)) {
                                 return cb.asc(cb.lower(expression));
                             }  else {

Reply via email to