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 84a261590a7122247d1642432e031f113c21eaed
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sun Aug 17 17:26:08 2025 -0500

    start refactoring more to HibernateHqlQuery
---
 .../orm/hibernate/HibernateGormStaticApi.groovy    | 27 +++++++++++++++-------
 .../orm/hibernate/query/HibernateHqlQuery.java     | 22 ++++++++++++++++++
 2 files changed, 41 insertions(+), 8 deletions(-)

diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
index 42828e74b5..666e15a34b 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
@@ -253,7 +253,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             populateQueryArguments(q, queryNamedArgs)
             populateQueryArguments(q, args)
             populateQueryWithNamedArguments(q, queryNamedArgs)
-            createHqlQuery(session, q).singleResult()
+
+            def hqlQuery = HibernateHqlQuery.createHqlQuery(session, q, 
datastore as HibernateDatastore, sessionFactory, persistentEntity)
+            hqlQuery.singleResult()
         }
     }
 
@@ -283,7 +285,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             populateQueryArguments(q, args)
             populateQueryWithNamedArguments(q, params)
 
-            createHqlQuery(session, q).list()
+
+            def hibernateHqlQuery = HibernateHqlQuery.createHqlQuery(session, 
q, datastore as HibernateDatastore, sessionFactory, persistentEntity)
+            hibernateHqlQuery.list()
         }
     }
 
@@ -313,7 +317,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             q.addEntity(persistentClass)
             populateQueryArguments(q, args)
             q.setMaxResults(1)
-            def results = createHqlQuery(session, q).list()
+
+            def hibernateHqlQuery = 
HibernateHqlQuery.createHqlQuery(session,q, datastore as 
HibernateDatastore,sessionFactory,persistentEntity)
+            def results = hibernateHqlQuery.list()
             if(results.isEmpty()) {
                 return null
             }
@@ -348,7 +354,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             }
             q.addEntity(persistentClass)
             populateQueryArguments(q, args)
-            return createHqlQuery(session, q).list()
+
+            def hibernateHqlQuery = 
HibernateHqlQuery.createHqlQuery(session,q, datastore as 
HibernateDatastore,sessionFactory,persistentEntity)
+            return hibernateHqlQuery.list()
         }
     }
 
@@ -489,7 +497,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             populateQueryArguments(q, args)
             populateQueryWithNamedArguments(q, params)
 
-            createHqlQuery(session, q).list()
+
+            def hibernateHqlQuery = 
HibernateHqlQuery.createHqlQuery(session,q, datastore as 
HibernateDatastore,sessionFactory,persistentEntity)
+            hibernateHqlQuery.list()
         }
     }
 
@@ -519,7 +529,9 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
                 }
             }
             populateQueryArguments(q, args)
-            createHqlQuery(session, q).list()
+
+            def hibernateHqlQuery = 
HibernateHqlQuery.createHqlQuery(session,q, datastore as 
HibernateDatastore,sessionFactory,persistentEntity)
+            hibernateHqlQuery.list()
         }
     }
 
@@ -914,8 +926,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             default:
                 hibernateSession.setFlushMode(FlushModeType.COMMIT)
         }
-        HibernateHqlQuery query = new HibernateHqlQuery(hibernateSession, 
persistentEntity, q)
-        return query
+        return HibernateHqlQuery.createHqlQuery(session,q, datastore as 
HibernateDatastore,sessionFactory,persistentEntity)
     }
 
 }
diff --git 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
index f00433246f..8c5542de0f 100644
--- 
a/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
+++ 
b/grails-data-hibernate6/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
@@ -1,11 +1,15 @@
 package org.grails.orm.hibernate.query;
 
+import jakarta.persistence.FlushModeType;
 import org.grails.datastore.mapping.core.Datastore;
 import org.grails.datastore.mapping.core.Session;
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.query.Query;
 import org.grails.datastore.mapping.query.event.PostQueryEvent;
 import org.grails.datastore.mapping.query.event.PreQueryEvent;
+import org.grails.orm.hibernate.HibernateDatastore;
+import org.grails.orm.hibernate.HibernateSession;
+import org.hibernate.SessionFactory;
 import org.springframework.context.ApplicationEventPublisher;
 
 import java.util.List;
@@ -49,4 +53,22 @@ public class HibernateHqlQuery extends Query {
             return results;
         }
     }
+
+
+        public static HibernateHqlQuery createHqlQuery(org.hibernate.Session 
session
+                , org.hibernate.query.Query q
+                , HibernateDatastore dataStore
+                , SessionFactory sessionFactory
+                , PersistentEntity persistentEntity
+        ) {
+            var hibernateSession = new HibernateSession( dataStore, 
sessionFactory);
+            switch (session.getHibernateFlushMode()) {
+                case AUTO, ALWAYS:
+                    hibernateSession.setFlushMode(FlushModeType.AUTO);
+                    break;
+                default:
+                    hibernateSession.setFlushMode(FlushModeType.COMMIT);
+            }
+            return new HibernateHqlQuery(hibernateSession, persistentEntity, 
q);
+        }
 }

Reply via email to