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 4eae0967636472146dc787ee6f1300099305ddab
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Wed Mar 4 13:45:28 2026 -0600

    change HibernateQueryConstants to HibernateQueryArgument
---
 .../groovy/grails/orm/CriteriaMethodInvoker.java   |  8 +--
 .../grails/orm/hibernate/HibernateDatastore.java   | 23 ++++---
 .../orm/hibernate/cfg/GrailsHibernateUtil.java     | 57 ++++++++++++----
 .../hibernate/query/GrailsHibernateQueryUtils.java | 63 +++++++++---------
 .../orm/hibernate/query/HibernateHqlQuery.java     | 15 ++---
 .../hibernate/query/HibernateQueryArgument.java    | 75 ++++++++++++++++++++++
 .../hibernate/query/HibernateQueryConstants.java   | 41 ++++++------
 7 files changed, 193 insertions(+), 89 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/grails/orm/CriteriaMethodInvoker.java
 
b/grails-data-hibernate7/core/src/main/groovy/grails/orm/CriteriaMethodInvoker.java
index 1ab0d4a48c..9dae907053 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/grails/orm/CriteriaMethodInvoker.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/grails/orm/CriteriaMethodInvoker.java
@@ -31,7 +31,7 @@ import java.util.Collection;
 import java.util.Map;
 import org.grails.datastore.mapping.query.Query;
 import org.grails.orm.hibernate.query.HibernateQuery;
-import org.grails.orm.hibernate.query.HibernateQueryConstants;
+import org.grails.orm.hibernate.query.HibernateQueryArgument;
 import org.springframework.beans.BeanUtils;
 
 public class CriteriaMethodInvoker {
@@ -104,11 +104,11 @@ public class CriteriaMethodInvoker {
         result = hibernateQuery.singleResult();
       } else if (builder.isPaginationEnabledList()) {
         Map argMap = (Map) args[0];
-        final String sortField = (String) 
argMap.get(HibernateQueryConstants.ARGUMENT_SORT);
+        final String sortField = (String) 
argMap.get(HibernateQueryArgument.SORT.value());
         if (sortField != null) {
           final boolean ignoreCase =
-              !(argMap.get(HibernateQueryConstants.ARGUMENT_IGNORE_CASE) 
instanceof Boolean b) || b;
-          final String orderParam = (String) 
argMap.get(HibernateQueryConstants.ARGUMENT_ORDER);
+              !(argMap.get(HibernateQueryArgument.IGNORE_CASE.value()) 
instanceof Boolean b) || b;
+          final String orderParam = (String) 
argMap.get(HibernateQueryArgument.ORDER.value());
           final Query.Order.Direction direction =
               Query.Order.Direction.DESC.name().equalsIgnoreCase(orderParam)
                   ? Query.Order.Direction.DESC
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java
index 94f6b27445..8c76d7909d 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/HibernateDatastore.java
@@ -73,6 +73,7 @@ import org.grails.orm.hibernate.cfg.MappingCacheHolder;
 import org.grails.orm.hibernate.cfg.Settings;
 import org.grails.orm.hibernate.connections.HibernateConnectionSource;
 import org.grails.orm.hibernate.connections.HibernateConnectionSourceFactory;
+import org.grails.orm.hibernate.query.HibernateQueryArgument;
 import org.grails.orm.hibernate.connections.HibernateConnectionSourceSettings;
 import org.grails.orm.hibernate.event.listener.HibernateEventListener;
 import org.grails.orm.hibernate.event.listener.HibernateEventListener;
@@ -119,15 +120,17 @@ public class HibernateDatastore extends AbstractDatastore
         MultipleConnectionSourceCapableDatastore {
   private static final Logger LOG = 
LoggerFactory.getLogger(HibernateDatastore.class);
 
-  /** The config property cache queries. */
-  public static final String CONFIG_PROPERTY_CACHE_QUERIES = 
"grails.hibernate.cache.queries";
+  /** @deprecated Use {@link HibernateQueryArgument#CONFIG_CACHE_QUERIES} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String CONFIG_PROPERTY_CACHE_QUERIES = 
HibernateQueryArgument.CONFIG_CACHE_QUERIES.value();
 
-  /** The config property osiv readonly. */
-  public static final String CONFIG_PROPERTY_OSIV_READONLY = 
"grails.hibernate.osiv.readonly";
+  /** @deprecated Use {@link HibernateQueryArgument#CONFIG_OSIV_READONLY} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String CONFIG_PROPERTY_OSIV_READONLY = 
HibernateQueryArgument.CONFIG_OSIV_READONLY.value();
 
-  /** The config property pass readonly to hibernate. */
-  public static final String CONFIG_PROPERTY_PASS_READONLY_TO_HIBERNATE =
-      "grails.hibernate.pass.readonly";
+  /** @deprecated Use {@link HibernateQueryArgument#CONFIG_PASS_READONLY} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String CONFIG_PROPERTY_PASS_READONLY_TO_HIBERNATE = 
HibernateQueryArgument.CONFIG_PASS_READONLY.value();
 
   /** The session factory. */
   protected final SessionFactory sessionFactory;
@@ -537,11 +540,11 @@ public class HibernateDatastore extends AbstractDatastore
       setApplicationContext(applicationContext);
     }
 
-    this.osivReadOnly = config.getProperty(CONFIG_PROPERTY_OSIV_READONLY, 
Boolean.class, false);
+    this.osivReadOnly = 
config.getProperty(HibernateQueryArgument.CONFIG_OSIV_READONLY.value(), 
Boolean.class, false);
     this.passReadOnlyToHibernate =
-        config.getProperty(CONFIG_PROPERTY_PASS_READONLY_TO_HIBERNATE, 
Boolean.class, false);
+        
config.getProperty(HibernateQueryArgument.CONFIG_PASS_READONLY.value(), 
Boolean.class, false);
     this.isCacheQueries =
-        config.getProperty(CONFIG_PROPERTY_CACHE_QUERIES, Boolean.class, 
false);
+        
config.getProperty(HibernateQueryArgument.CONFIG_CACHE_QUERIES.value(), 
Boolean.class, false);
 
     if (config.getProperty(SETTING_AUTO_FLUSH, Boolean.class, false)) {
       this.defaultFlushModeName = FlushMode.AUTO.name();
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernateUtil.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernateUtil.java
index 691c7cd915..ef13486c3c 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernateUtil.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernateUtil.java
@@ -37,6 +37,7 @@ import org.hibernate.SessionFactory;
 import org.hibernate.engine.spi.EntityEntry;
 import org.hibernate.engine.spi.SessionImplementor;
 import org.hibernate.engine.spi.Status;
+import org.grails.orm.hibernate.query.HibernateQueryArgument;
 import org.hibernate.internal.util.StringHelper;
 import org.hibernate.proxy.HibernateProxy;
 import org.slf4j.Logger;
@@ -52,20 +53,48 @@ import 
org.springframework.transaction.support.TransactionSynchronizationManager
 public class GrailsHibernateUtil extends HibernateRuntimeUtils {
   protected static final Logger LOG = 
LoggerFactory.getLogger(GrailsHibernateUtil.class);
 
-  public static final String ARGUMENT_FETCH_SIZE = "fetchSize";
-  public static final String ARGUMENT_TIMEOUT = "timeout";
-  public static final String ARGUMENT_READ_ONLY = "readOnly";
-  public static final String ARGUMENT_FLUSH_MODE = "flushMode";
-  public static final String ARGUMENT_MAX = "max";
-  public static final String ARGUMENT_OFFSET = "offset";
-  public static final String ARGUMENT_ORDER = "order";
-  public static final String ARGUMENT_SORT = "sort";
-  public static final String ORDER_DESC = "desc";
-  public static final String ORDER_ASC = "asc";
-  public static final String ARGUMENT_FETCH = "fetch";
-  public static final String ARGUMENT_IGNORE_CASE = "ignoreCase";
-  public static final String ARGUMENT_CACHE = "cache";
-  public static final String ARGUMENT_LOCK = "lock";
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#FETCH_SIZE} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_FETCH_SIZE = 
HibernateQueryArgument.FETCH_SIZE.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#TIMEOUT} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_TIMEOUT = 
HibernateQueryArgument.TIMEOUT.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#READ_ONLY} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_READ_ONLY = 
HibernateQueryArgument.READ_ONLY.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#FLUSH_MODE} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_FLUSH_MODE = 
HibernateQueryArgument.FLUSH_MODE.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#MAX} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_MAX = HibernateQueryArgument.MAX.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#OFFSET} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_OFFSET = 
HibernateQueryArgument.OFFSET.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#ORDER} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_ORDER = 
HibernateQueryArgument.ORDER.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#SORT} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_SORT = 
HibernateQueryArgument.SORT.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#ORDER_DESC} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ORDER_DESC = 
HibernateQueryArgument.ORDER_DESC.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#ORDER_ASC} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ORDER_ASC = 
HibernateQueryArgument.ORDER_ASC.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#FETCH} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_FETCH = 
HibernateQueryArgument.FETCH.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#IGNORE_CASE} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_IGNORE_CASE = 
HibernateQueryArgument.IGNORE_CASE.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#CACHE} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_CACHE = 
HibernateQueryArgument.CACHE.value();
+  /** @deprecated Use {@link 
org.grails.orm.hibernate.query.HibernateQueryArgument#LOCK} */
+  @Deprecated(since = "8.0", forRemoval = true)
+  public static final String ARGUMENT_LOCK = 
HibernateQueryArgument.LOCK.value();
   public static final Class<?>[] EMPTY_CLASS_ARRAY = {};
 
   private static HibernateProxyHandler proxyHandler = new 
HibernateProxyHandler();
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 cc73b32ca9..0cc2f785e8 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
@@ -25,7 +25,6 @@ import java.util.Comparator;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
-import org.grails.datastore.gorm.finders.DynamicFinder;
 import org.grails.datastore.mapping.config.Property;
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.model.PersistentProperty;
@@ -67,7 +66,7 @@ public class GrailsHibernateQueryUtils {
       Map argMap,
       ConversionService conversionService,
       boolean useDefaultMapping) {
-    Object fetchObj = argMap.get(DynamicFinder.ARGUMENT_FETCH);
+    Object fetchObj = argMap.get(HibernateQueryArgument.FETCH.value());
     if (fetchObj instanceof Map) {
       Map fetch = (Map) fetchObj;
       for (Object o : fetch.keySet()) {
@@ -80,27 +79,27 @@ public class GrailsHibernateQueryUtils {
       }
     }
 
-    final Object sortObj = argMap.get(DynamicFinder.ARGUMENT_SORT);
+    final Object sortObj = argMap.get(HibernateQueryArgument.SORT.value());
     if (sortObj != null) {
       final boolean ignoreCase =
-          !(argMap.get(DynamicFinder.ARGUMENT_IGNORE_CASE) instanceof Boolean 
b) || b;
+          !(argMap.get(HibernateQueryArgument.IGNORE_CASE.value()) instanceof 
Boolean b) || b;
       if (sortObj instanceof Map) {
         Map sortMap = (Map) sortObj;
         for (Object sort : sortMap.keySet()) {
           final String order =
-              DynamicFinder.ORDER_DESC.equalsIgnoreCase((String) 
sortMap.get(sort))
-                  ? DynamicFinder.ORDER_DESC
-                  : DynamicFinder.ORDER_ASC;
+              
HibernateQueryArgument.ORDER_DESC.value().equalsIgnoreCase((String) 
sortMap.get(sort))
+                  ? HibernateQueryArgument.ORDER_DESC.value()
+                  : HibernateQueryArgument.ORDER_ASC.value();
           addOrderPossiblyNested(
               query, queryRoot, criteriaBuilder, entity, (String) sort, order, 
ignoreCase);
         }
       } else {
         final String sort = (String) sortObj;
         final String order =
-            DynamicFinder.ORDER_DESC.equalsIgnoreCase(
-                    (String) argMap.get(DynamicFinder.ARGUMENT_ORDER))
-                ? DynamicFinder.ORDER_DESC
-                : DynamicFinder.ORDER_ASC;
+            HibernateQueryArgument.ORDER_DESC.value().equalsIgnoreCase(
+                    (String) argMap.get(HibernateQueryArgument.ORDER.value()))
+                ? HibernateQueryArgument.ORDER_DESC.value()
+                : HibernateQueryArgument.ORDER_ASC.value();
         addOrderPossiblyNested(query, queryRoot, criteriaBuilder, entity, 
sort, order, ignoreCase);
       }
     } else if (useDefaultMapping) {
@@ -110,9 +109,9 @@ public class GrailsHibernateQueryUtils {
         Map sortMap = m.getSort().getNamesAndDirections();
         for (Object sort : sortMap.keySet()) {
           final String order =
-              DynamicFinder.ORDER_DESC.equalsIgnoreCase((String) 
sortMap.get(sort))
-                  ? DynamicFinder.ORDER_DESC
-                  : DynamicFinder.ORDER_ASC;
+              
HibernateQueryArgument.ORDER_DESC.value().equalsIgnoreCase((String) 
sortMap.get(sort))
+                  ? HibernateQueryArgument.ORDER_DESC.value()
+                  : HibernateQueryArgument.ORDER_ASC.value();
           addOrderPossiblyNested(
               query, queryRoot, criteriaBuilder, entity, (String) sort, order, 
true);
         }
@@ -135,26 +134,26 @@ public class GrailsHibernateQueryUtils {
       ConversionService conversionService,
       boolean useDefaultMapping) {
     final Integer maxParam =
-        argMap.containsKey(DynamicFinder.ARGUMENT_MAX)
-            ? 
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_MAX), Integer.class)
+        argMap.containsKey(HibernateQueryArgument.MAX.value())
+            ? 
conversionService.convert(argMap.get(HibernateQueryArgument.MAX.value()), 
Integer.class)
             : null;
     final Integer offsetParam =
-        argMap.containsKey(DynamicFinder.ARGUMENT_OFFSET)
-            ? 
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_OFFSET), 
Integer.class)
+        argMap.containsKey(HibernateQueryArgument.OFFSET.value())
+            ? 
conversionService.convert(argMap.get(HibernateQueryArgument.OFFSET.value()), 
Integer.class)
             : null;
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_FETCH_SIZE)) {
+    if (argMap.containsKey(HibernateQueryArgument.FETCH_SIZE.value())) {
       query.setFetchSize(
-          
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_FETCH_SIZE), 
Integer.class));
+          
conversionService.convert(argMap.get(HibernateQueryArgument.FETCH_SIZE.value()),
 Integer.class));
     }
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_TIMEOUT)) {
+    if (argMap.containsKey(HibernateQueryArgument.TIMEOUT.value())) {
       query.setTimeout(
-          
conversionService.convert(argMap.get(DynamicFinder.ARGUMENT_TIMEOUT), 
Integer.class));
+          
conversionService.convert(argMap.get(HibernateQueryArgument.TIMEOUT.value()), 
Integer.class));
     }
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_FLUSH_MODE)) {
-      
query.setQueryFlushMode(convertQueryFlushMode(argMap.get(DynamicFinder.ARGUMENT_FLUSH_MODE)));
+    if (argMap.containsKey(HibernateQueryArgument.FLUSH_MODE.value())) {
+      
query.setQueryFlushMode(convertQueryFlushMode(argMap.get(HibernateQueryArgument.FLUSH_MODE.value())));
     }
-    if (argMap.containsKey(DynamicFinder.ARGUMENT_READ_ONLY)) {
-      
query.setReadOnly(ClassUtils.getBooleanFromMap(DynamicFinder.ARGUMENT_READ_ONLY,
 argMap));
+    if (argMap.containsKey(HibernateQueryArgument.READ_ONLY.value())) {
+      
query.setReadOnly(ClassUtils.getBooleanFromMap(HibernateQueryArgument.READ_ONLY.value(),
 argMap));
     }
 
     final int max = maxParam == null ? -1 : maxParam;
@@ -165,12 +164,12 @@ public class GrailsHibernateQueryUtils {
     if (offset > -1) {
       query.setFirstResult(offset);
     }
-    if (ClassUtils.getBooleanFromMap(DynamicFinder.ARGUMENT_LOCK, argMap)) {
+    if (ClassUtils.getBooleanFromMap(HibernateQueryArgument.LOCK.value(), 
argMap)) {
       query.setLockMode(LockModeType.PESSIMISTIC_WRITE);
       query.setCacheable(false);
     } else {
-      if (argMap.containsKey(DynamicFinder.ARGUMENT_CACHE)) {
-        
query.setCacheable(ClassUtils.getBooleanFromMap(DynamicFinder.ARGUMENT_CACHE, 
argMap));
+      if (argMap.containsKey(HibernateQueryArgument.CACHE.value())) {
+        
query.setCacheable(ClassUtils.getBooleanFromMap(HibernateQueryArgument.CACHE.value(),
 argMap));
       } else {
         cacheCriteriaByMapping(entity.getJavaClass(), query);
       }
@@ -281,7 +280,7 @@ public class GrailsHibernateQueryUtils {
                       ignoreCase ? criteriaBuilder.upper(queryRoot.get(name)) 
: queryRoot.get(name))
               .map(
                   path ->
-                      DynamicFinder.ORDER_DESC.equals(order)
+                      HibernateQueryArgument.ORDER_DESC.value().equals(order)
                           ? criteriaBuilder.desc(path)
                           : criteriaBuilder.asc(path))
               .sorted(orderComparator)
@@ -295,7 +294,7 @@ public class GrailsHibernateQueryUtils {
       if (ignoreCase) {
         path = criteriaBuilder.upper(path);
       }
-      if (DynamicFinder.ORDER_DESC.equals(order)) {
+      if (HibernateQueryArgument.ORDER_DESC.value().equals(order)) {
         query.orderBy(criteriaBuilder.desc(path));
       } else {
         query.orderBy(criteriaBuilder.asc(path));
@@ -306,7 +305,7 @@ public class GrailsHibernateQueryUtils {
       if (ignoreCase) {
         path = criteriaBuilder.upper(path);
       }
-      if (DynamicFinder.ORDER_DESC.equals(order)) {
+      if (HibernateQueryArgument.ORDER_DESC.value().equals(order)) {
         query.orderBy(criteriaBuilder.desc(path));
       } else {
         query.orderBy(criteriaBuilder.asc(path));
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
index 02e21230fc..d658935b36 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateHqlQuery.java
@@ -27,7 +27,6 @@ import java.util.Map;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
 import org.apache.groovy.parser.antlr4.util.StringUtils;
-import org.grails.datastore.gorm.finders.DynamicFinder;
 import org.grails.datastore.mapping.core.Datastore;
 import org.grails.datastore.mapping.core.Session;
 import org.grails.datastore.mapping.model.PersistentEntity;
@@ -161,15 +160,15 @@ public class HibernateHqlQuery extends Query {
   }
 
   public void populateQuerySettings(Map<?, ?> args) {
-    ifPresent(args, DynamicFinder.ARGUMENT_MAX, v -> 
delegate.setMaxResults(toInt(v)));
-    ifPresent(args, DynamicFinder.ARGUMENT_OFFSET, v -> 
delegate.setFirstResult(toInt(v)));
-    ifPresent(args, DynamicFinder.ARGUMENT_CACHE, v -> 
delegate.setCacheable(toBool(v)));
-    ifPresent(args, DynamicFinder.ARGUMENT_FETCH_SIZE, v -> 
delegate.setFetchSize(toInt(v)));
-    ifPresent(args, DynamicFinder.ARGUMENT_TIMEOUT, v -> 
delegate.setTimeout(toInt(v)));
-    ifPresent(args, DynamicFinder.ARGUMENT_READ_ONLY, v -> 
delegate.setReadOnly(toBool(v)));
+    ifPresent(args, HibernateQueryArgument.MAX.value(), v -> 
delegate.setMaxResults(toInt(v)));
+    ifPresent(args, HibernateQueryArgument.OFFSET.value(), v -> 
delegate.setFirstResult(toInt(v)));
+    ifPresent(args, HibernateQueryArgument.CACHE.value(), v -> 
delegate.setCacheable(toBool(v)));
+    ifPresent(args, HibernateQueryArgument.FETCH_SIZE.value(), v -> 
delegate.setFetchSize(toInt(v)));
+    ifPresent(args, HibernateQueryArgument.TIMEOUT.value(), v -> 
delegate.setTimeout(toInt(v)));
+    ifPresent(args, HibernateQueryArgument.READ_ONLY.value(), v -> 
delegate.setReadOnly(toBool(v)));
     ifPresent(
         args,
-        DynamicFinder.ARGUMENT_FLUSH_MODE,
+        HibernateQueryArgument.FLUSH_MODE.value(),
         v -> 
delegate.setQueryFlushMode(GrailsHibernateQueryUtils.convertQueryFlushMode(v)));
   }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryArgument.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryArgument.java
new file mode 100644
index 0000000000..191899bea8
--- /dev/null
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryArgument.java
@@ -0,0 +1,75 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    https://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.grails.orm.hibernate.query;
+
+import org.grails.datastore.gorm.finders.DynamicFinder;
+
+/**
+ * Typed enum of all query argument keys and Hibernate config property keys 
used in the
+ * Hibernate 7 datastore. String values are sourced from {@link DynamicFinder} 
for the
+ * query arguments, eliminating the three duplicate sets of raw string 
constants that
+ * previously existed across {@code HibernateQueryConstants}, {@code 
GrailsHibernateUtil},
+ * and {@code DynamicFinder}.
+ *
+ * <p>Use {@link #value()} to obtain the string key for map lookups. {@link 
#toString()}
+ * also returns the string value so instances can be used in 
string-interpolated contexts.
+ *
+ * @since 8.0
+ */
+public enum HibernateQueryArgument {
+
+  // ── pagination & execution ────────────────────────────────────────────────
+  MAX(DynamicFinder.ARGUMENT_MAX),
+  OFFSET(DynamicFinder.ARGUMENT_OFFSET),
+  FETCH_SIZE(DynamicFinder.ARGUMENT_FETCH_SIZE),
+  TIMEOUT(DynamicFinder.ARGUMENT_TIMEOUT),
+  FLUSH_MODE(DynamicFinder.ARGUMENT_FLUSH_MODE),
+  READ_ONLY(DynamicFinder.ARGUMENT_READ_ONLY),
+  CACHE(DynamicFinder.ARGUMENT_CACHE),
+  LOCK(DynamicFinder.ARGUMENT_LOCK),
+  FETCH(DynamicFinder.ARGUMENT_FETCH),
+
+  // ── sorting ───────────────────────────────────────────────────────────────
+  SORT(DynamicFinder.ARGUMENT_SORT),
+  ORDER(DynamicFinder.ARGUMENT_ORDER),
+  IGNORE_CASE(DynamicFinder.ARGUMENT_IGNORE_CASE),
+  ORDER_DESC(DynamicFinder.ORDER_DESC),
+  ORDER_ASC(DynamicFinder.ORDER_ASC),
+
+  // ── Hibernate config properties ───────────────────────────────────────────
+  CONFIG_CACHE_QUERIES("grails.hibernate.cache.queries"),
+  CONFIG_OSIV_READONLY("grails.hibernate.osiv.readonly"),
+  CONFIG_PASS_READONLY("grails.hibernate.pass.readonly");
+
+  private final String value;
+
+  HibernateQueryArgument(String value) {
+    this.value = value;
+  }
+
+  /** Returns the string key used for map lookups and config property 
resolution. */
+  public String value() {
+    return value;
+  }
+
+  @Override
+  public String toString() {
+    return value;
+  }
+}
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryConstants.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryConstants.java
index 6d245d43ff..84aa26ff99 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryConstants.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/query/HibernateQueryConstants.java
@@ -19,28 +19,27 @@
 package org.grails.orm.hibernate.query;
 
 /**
- * Constants used for query arguments etc.
- *
- * @since 3.0.7
- * @author Graeme Rocher
+ * @deprecated Use {@link HibernateQueryArgument} instead.
  */
+@Deprecated(since = "8.0", forRemoval = true)
 public interface HibernateQueryConstants {
 
-  String ARGUMENT_FETCH_SIZE = "fetchSize";
-  String ARGUMENT_TIMEOUT = "timeout";
-  String ARGUMENT_READ_ONLY = "readOnly";
-  String ARGUMENT_FLUSH_MODE = "flushMode";
-  String ARGUMENT_MAX = "max";
-  String ARGUMENT_OFFSET = "offset";
-  String ARGUMENT_ORDER = "order";
-  String ARGUMENT_SORT = "sort";
-  String ORDER_DESC = "desc";
-  String ORDER_ASC = "asc";
-  String ARGUMENT_FETCH = "fetch";
-  String ARGUMENT_IGNORE_CASE = "ignoreCase";
-  String ARGUMENT_CACHE = "cache";
-  String ARGUMENT_LOCK = "lock";
-  String CONFIG_PROPERTY_CACHE_QUERIES = "grails.hibernate.cache.queries";
-  String CONFIG_PROPERTY_OSIV_READONLY = "grails.hibernate.osiv.readonly";
-  String CONFIG_PROPERTY_PASS_READONLY_TO_HIBERNATE = 
"grails.hibernate.pass.readonly";
+  String ARGUMENT_FETCH_SIZE = HibernateQueryArgument.FETCH_SIZE.value();
+  String ARGUMENT_TIMEOUT = HibernateQueryArgument.TIMEOUT.value();
+  String ARGUMENT_READ_ONLY = HibernateQueryArgument.READ_ONLY.value();
+  String ARGUMENT_FLUSH_MODE = HibernateQueryArgument.FLUSH_MODE.value();
+  String ARGUMENT_MAX = HibernateQueryArgument.MAX.value();
+  String ARGUMENT_OFFSET = HibernateQueryArgument.OFFSET.value();
+  String ARGUMENT_ORDER = HibernateQueryArgument.ORDER.value();
+  String ARGUMENT_SORT = HibernateQueryArgument.SORT.value();
+  String ORDER_DESC = HibernateQueryArgument.ORDER_DESC.value();
+  String ORDER_ASC = HibernateQueryArgument.ORDER_ASC.value();
+  String ARGUMENT_FETCH = HibernateQueryArgument.FETCH.value();
+  String ARGUMENT_IGNORE_CASE = HibernateQueryArgument.IGNORE_CASE.value();
+  String ARGUMENT_CACHE = HibernateQueryArgument.CACHE.value();
+  String ARGUMENT_LOCK = HibernateQueryArgument.LOCK.value();
+  String CONFIG_PROPERTY_CACHE_QUERIES = 
HibernateQueryArgument.CONFIG_CACHE_QUERIES.value();
+  String CONFIG_PROPERTY_OSIV_READONLY = 
HibernateQueryArgument.CONFIG_OSIV_READONLY.value();
+  String CONFIG_PROPERTY_PASS_READONLY_TO_HIBERNATE = 
HibernateQueryArgument.CONFIG_PASS_READONLY.value();
 }
+

Reply via email to