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

borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit d5de3307bf8d3cf0b487b9b98ba59bf51c0fe5ab
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Fri Mar 6 08:24:52 2026 -0600

    hibernate7: Refactoring GrailsHibernateQueryUtils and HibernateGormStaticApi
---
 .../orm/hibernate/HibernateGormStaticApi.groovy    | 52 ++++++++--------------
 .../hibernate/query/GrailsHibernateQueryUtils.java | 14 +++---
 .../query/GrailsHibernateQueryUtilsSpec.groovy     | 10 +++--
 3 files changed, 32 insertions(+), 44 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
index d37bba3881..f65b874bbe 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateGormStaticApi.groovy
@@ -65,6 +65,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
     protected final HibernateSession hibernateSession
     protected ProxyHandler proxyHandler
     protected SessionFactory sessionFactory
+    protected GrailsHibernateQueryUtils queryUtils
     protected Class identityType
     protected ClassLoader classLoader
     private HibernateGormInstanceApi<D> instanceApi
@@ -75,6 +76,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
         this.hibernateTemplate = new 
GrailsHibernateTemplate(datastore.getSessionFactory(), datastore)
         this.conversionService = datastore.mappingContext.conversionService
         this.proxyHandler = datastore.mappingContext.proxyHandler
+        this.queryUtils = new GrailsHibernateQueryUtils()
         this.hibernateSession = new HibernateSession(
                 (HibernateDatastore)datastore,
                 hibernateTemplate.getSessionFactory()
@@ -310,14 +312,10 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
     }
 
     @SuppressWarnings('GroovyAssignabilityCheck')
-    private List<D> doListInternal(CharSequence hql,
-                                   Map namedParams,
-                                   Collection positionalParams,
-                                   Map args
-                                   , boolean isNative) {
-        boolean isUpdate = false
+    private HibernateHqlQuery prepareHqlQuery(CharSequence hql, boolean 
isNative, boolean isUpdate,
+                                              Map namedParams, Collection 
positionalParams, Map args) {
         def ctx = HqlQueryContext.prepare(hql, isNative, isUpdate, 
namedParams, persistentEntity)
-        def hqlQuery = HibernateHqlQuery.createHqlQuery(
+        return HibernateHqlQuery.createHqlQuery(
                 (HibernateDatastore) datastore,
                 sessionFactory,
                 persistentEntity,
@@ -326,6 +324,14 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
                 positionalParams,
                 getHibernateTemplate()
         )
+    }
+
+    private List<D> doListInternal(CharSequence hql,
+                                   Map namedParams,
+                                   Collection positionalParams,
+                                   Map args
+                                   , boolean isNative) {
+        def hqlQuery = prepareHqlQuery(hql, isNative, false, namedParams, 
positionalParams, args)
         firePreQueryEvent()
         def ds = (List<D>) hqlQuery.list()
         firePostQueryEvent(ds)
@@ -338,17 +344,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
                                Collection positionalParams,
                                Map args
                                , boolean isNative) {
-        boolean isUpdate = false
-        def ctx = HqlQueryContext.prepare(hql, isNative, isUpdate, 
namedParams, persistentEntity)
-        def hqlQuery = HibernateHqlQuery.createHqlQuery(
-                (HibernateDatastore) datastore,
-                sessionFactory,
-                persistentEntity,
-                ctx,
-                args,
-                positionalParams,
-                getHibernateTemplate()
-        )
+        def hqlQuery = prepareHqlQuery(hql, isNative, false, namedParams, 
positionalParams, args)
         firePreQueryEvent()
         def sm = hqlQuery.singleResult()
         firePostQueryEvent(sm)
@@ -359,18 +355,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
                                             Map namedParams,
                                             Collection positionalParams,
                                             Map args) {
-        boolean isNative = false
-        boolean isUpdate  = true
-        def ctx = HqlQueryContext.prepare(hql, isNative, isUpdate, 
namedParams, persistentEntity)
-        def hqlQuery = HibernateHqlQuery.createHqlQuery(
-                (HibernateDatastore) datastore,
-                sessionFactory,
-                persistentEntity,
-                ctx,
-                args,
-                positionalParams,
-                getHibernateTemplate()
-        )
+        def hqlQuery = prepareHqlQuery(hql, false, true, namedParams, 
positionalParams, args)
         firePreQueryEvent()
         def execute = hqlQuery.executeUpdate()
         firePostQueryEvent(execute)
@@ -476,8 +461,8 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
         hibernateTemplate.execute { Session session ->
             CriteriaBuilder criteriaBuilder = session.getCriteriaBuilder()
             CriteriaQuery criteriaQuery = 
criteriaBuilder.createQuery(persistentEntity.javaClass)
-            Root queryRoot = criteriaQuery.from(persistentEntity.javaClass)
-            GrailsHibernateQueryUtils.populateArgumentsForCriteria(
+            var queryRoot = criteriaQuery.from(persistentEntity.javaClass)
+            queryUtils.populateArgumentsForCriteria(
                     persistentEntity,
                     criteriaQuery,
                     queryRoot,
@@ -488,7 +473,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
             )
             Query query = session.createQuery(criteriaQuery)
 
-            GrailsHibernateQueryUtils.populateArgumentsForCriteria(
+            queryUtils.populateArgumentsForCriteria(
                     persistentEntity,
                     query,
                     params,
@@ -496,6 +481,7 @@ class HibernateGormStaticApi<D> extends GormStaticApi<D> {
 
             )
 
+
             HibernateHqlQuery hibernateQuery = new HibernateHqlQuery(
                     new HibernateSession((HibernateDatastore)datastore, 
sessionFactory),
                     persistentEntity,
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
index 2e89a017e1..29fd4de8b3 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtils.java
@@ -57,7 +57,7 @@ public class GrailsHibernateQueryUtils {
    * @param query  The criteria instance
    * @param argMap The arguments map
    */
-  public static void populateArgumentsForCriteria(
+  public void populateArgumentsForCriteria(
       PersistentEntity entity,
       CriteriaQuery<?> query,
       Root<?> queryRoot,
@@ -123,7 +123,7 @@ public class GrailsHibernateQueryUtils {
    * @param query  The criteria instance
    * @param argMap The arguments map
    */
-  public static void populateArgumentsForCriteria(
+  public void populateArgumentsForCriteria(
       PersistentEntity entity,
       Query<?> query,
       Map<String, Object> argMap,
@@ -179,7 +179,7 @@ public class GrailsHibernateQueryUtils {
    * Add order to criteria, creating necessary subCriteria if nested sort 
property (ie.
    * sort:'nested.property').
    */
-  protected static void addOrderPossiblyNested(
+  protected void addOrderPossiblyNested(
       CriteriaQuery<?> query,
       From<?, ?> queryRoot,
       CriteriaBuilder criteriaBuilder,
@@ -221,7 +221,7 @@ public class GrailsHibernateQueryUtils {
     }
   }
 
-  protected static boolean isIgnoreCaseProperty(
+  protected boolean isIgnoreCaseProperty(
       boolean ignoreCase, PersistentProperty<? extends Property> 
persistentProperty) {
     if (ignoreCase && persistentProperty != null && 
persistentProperty.getType() != String.class) {
       ignoreCase = false;
@@ -230,7 +230,7 @@ public class GrailsHibernateQueryUtils {
   }
 
   /** Add order directly to criteria. */
-  protected static void addOrder(
+  protected void addOrder(
       PersistentEntity entity,
       CriteriaQuery<?> query,
       From<?, ?> queryRoot,
@@ -322,7 +322,7 @@ public class GrailsHibernateQueryUtils {
    * @param targetClass The target class
    * @param criteria The criteria
    */
-  protected static void cacheCriteriaByMapping(Class<?> targetClass, Query<?> 
criteria) {
+  protected void cacheCriteriaByMapping(Class<?> targetClass, Query<?> 
criteria) {
     Mapping m = MappingCacheHolder.getInstance().getMapping(targetClass);
     if (m != null && m.getCache() != null && m.getCache().getEnabled()) {
       criteria.setCacheable(true);
@@ -359,7 +359,7 @@ public class GrailsHibernateQueryUtils {
    * @param object The object, converted to a string
    * @return The FetchMode
    */
-  public static FetchMode getFetchMode(Object object) {
+  public FetchMode getFetchMode(Object object) {
     String name = object != null ? object.toString() : "default";
     if (name.equalsIgnoreCase(FetchMode.JOIN.toString()) || 
name.equalsIgnoreCase("eager")) {
       return FetchMode.JOIN;
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtilsSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtilsSpec.groovy
index 4dc55d1cd1..dc9284a771 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtilsSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/query/GrailsHibernateQueryUtilsSpec.groovy
@@ -28,10 +28,12 @@ import spock.lang.Unroll
 
 class GrailsHibernateQueryUtilsSpec extends Specification {
 
+    GrailsHibernateQueryUtils queryUtils = new GrailsHibernateQueryUtils()
+
     @Unroll
     def "test convertQueryFlushMode for #input"() {
         expect:
-        GrailsHibernateQueryUtils.convertQueryFlushMode(input) == expected
+        queryUtils.convertQueryFlushMode(input) == expected
 
         where:
         input               | expected
@@ -46,7 +48,7 @@ class GrailsHibernateQueryUtilsSpec extends Specification {
     @Unroll
     def "test getFetchMode for #input"() {
         expect:
-        GrailsHibernateQueryUtils.getFetchMode(input) == expected
+        queryUtils.getFetchMode(input) == expected
 
         where:
         input               | expected
@@ -80,7 +82,7 @@ class GrailsHibernateQueryUtilsSpec extends Specification {
         conversionService.convert(30, Integer.class) >> 30
 
         when:
-        GrailsHibernateQueryUtils.populateArgumentsForCriteria(entity, query, 
argMap, conversionService)
+        queryUtils.populateArgumentsForCriteria(entity, query, argMap, 
conversionService)
 
         then:
         1 * query.setMaxResults(10)
@@ -108,7 +110,7 @@ class GrailsHibernateQueryUtilsSpec extends Specification {
         conversionService.convert(30, Integer.class) >> null
 
         when:
-        GrailsHibernateQueryUtils.populateArgumentsForCriteria(entity, query, 
argMap, conversionService)
+        queryUtils.populateArgumentsForCriteria(entity, query, argMap, 
conversionService)
 
         then:
         0 * query.setFetchSize(_)

Reply via email to