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

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

commit e2919c70c4ebb48708f3fd062aea09738920d763
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Mon Feb 23 12:22:09 2026 -0600

    removed deprecated implementation from GrailsIncrementGenerator
---
 grails-data-hibernate7/REMOVAL_WARNINGS.md         |  39 ++++
 .../domainbinding/binder/GrailsDomainBinder.java   |   2 +-
 .../domainbinding/binder/SimpleValueBinder.java    |   3 +-
 .../generator/GrailsIncrementGenerator.java        | 200 ++++-----------------
 .../generator/GrailsSequenceGeneratorEnum.groovy   |  11 +-
 .../generator/GrailsSequenceWrapper.java           |   6 +-
 .../domainbinding/util/BasicValueIdCreator.java    |  10 +-
 .../domainbinding/BasicValueIdCreatorSpec.groovy   |  15 +-
 .../cfg/domainbinding/CollectionBinderSpec.groovy  |   2 +-
 .../domainbinding/GrailsPropertyBinderSpec.groovy  |   2 +-
 ...ootPersistentClassCommonValuesBinderSpec.groovy |   2 +-
 .../generator/GrailsSequenceWrapperSpec.groovy     |   6 +-
 .../secondpass/ListSecondPassBinderSpec.groovy     |   2 +-
 .../secondpass/MapSecondPassBinderSpec.groovy      |   2 +-
 14 files changed, 113 insertions(+), 189 deletions(-)

diff --git a/grails-data-hibernate7/REMOVAL_WARNINGS.md 
b/grails-data-hibernate7/REMOVAL_WARNINGS.md
new file mode 100644
index 0000000000..28ef82e37c
--- /dev/null
+++ b/grails-data-hibernate7/REMOVAL_WARNINGS.md
@@ -0,0 +1,39 @@
+# Removal Deprecation Warnings — grails-data-hibernate7-core
+
+Warnings collected by compiling `grails-data-hibernate7-core` with 
`-Xlint:removal`.  
+These APIs are **marked for removal** in a future Hibernate / JDK release and 
must be migrated.
+
+Generated from: Hibernate `7.1.11.Final`
+
+---
+
+| Fully Qualified Class | Line | Warning |
+|---|---|---|
+| `org.grails.orm.hibernate.GrailsHibernateTemplate` | 388 | 
`<T>get(Class<T>,Object) in Session` has been deprecated and marked for removal 
|
+| `org.grails.orm.hibernate.GrailsHibernateTemplate` | 419 | 
`<T>get(Class<T>,Object,LockOptions) in Session` has been deprecated and marked 
for removal |
+| `org.grails.orm.hibernate.GrailsHibernateTemplate` | 419 | `LockOptions in 
org.hibernate` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.GrailsHibernateTemplate` | 467 | `LockOptions in 
org.hibernate` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.GrailsHibernateTemplate` | 467 | 
`refresh(Object,LockOptions) in Session` has been deprecated and marked for 
removal |
+| `org.grails.orm.hibernate.HibernateDatastore` | 686 | `SchemaAutoTooling in 
org.hibernate.boot` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.HibernateDatastore` | 687 | `SchemaAutoTooling in 
org.hibernate.boot` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.HibernateDatastore` | 689 | `SchemaAutoTooling in 
org.hibernate.boot` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.HibernateDatastore` | 690 | `SchemaAutoTooling in 
org.hibernate.boot` has been deprecated and marked for removal |
+| `org.grails.orm.hibernate.cfg.domainbinding.util.GrailsOneToOne` | 98 | 
`createGenerator(Dialect,RootClass) in KeyValue` has been deprecated and marked 
for removal |
+| `org.grails.orm.hibernate.cfg.domainbinding.util.GrailsOneToOne` | 99 | 
`createGenerator(Dialect,RootClass) in SimpleValue` has been deprecated and 
marked for removal |
+| `org.grails.orm.hibernate.support.ClosureEventListener` | 342 | 
`EntityMetamodel in org.hibernate.tuple.entity` has been deprecated and marked 
for removal |
+| `org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor` | 286 | 
`EntityMetamodel in org.hibernate.tuple.entity` has been deprecated and marked 
for removal |
+| `org.grails.orm.hibernate.support.ClosureEventTriggeringInterceptor` | 305 | 
`EntityMetamodel in org.hibernate.tuple.entity` has been deprecated and marked 
for removal |
+
+---
+
+## Summary by API
+
+| Deprecated API | Affected Classes | Occurrences |
+|---|---|---|
+| `LockOptions` (`org.hibernate`) | `GrailsHibernateTemplate` | 3 |
+| `Session.get(Class,Object)` / `get(Class,Object,LockOptions)` | 
`GrailsHibernateTemplate` | 2 |
+| `Session.refresh(Object,LockOptions)` | `GrailsHibernateTemplate` | 1 |
+| `SchemaAutoTooling` (`org.hibernate.boot`) | `HibernateDatastore` | 4 |
+| `IdentifierGenerator.configure(Type,Properties,ServiceRegistry)` | 
`GrailsIncrementGenerator` | 1 |
+| `KeyValue/SimpleValue.createGenerator(Dialect,RootClass)` | `GrailsOneToOne` 
| 2 |
+| `EntityMetamodel` (`org.hibernate.tuple.entity`) | `ClosureEventListener`, 
`ClosureEventTriggeringInterceptor` | 3 |
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
index b06b402758..90f8735489 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
@@ -184,7 +184,7 @@ public class GrailsDomainBinder implements 
AdditionalMappingContributor, TypeCon
             metadataBuildingContext,
             namingStrategy,
             jdbcEnvironment,
-            new BasicValueIdCreator(jdbcEnvironment),
+            new BasicValueIdCreator(jdbcEnvironment, namingStrategy),
             simpleValueBinder,
             propertyBinder);
     IdentityBinder identityBinder = new IdentityBinder(simpleIdBinder, 
compositeIdBinder);
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java
index f26978aaa6..71735e7910 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleValueBinder.java
@@ -146,6 +146,7 @@ public class SimpleValueBinder {
         context,
         null,
         (GrailsHibernatePersistentEntity) property.getHibernateOwner(),
-        jdbcEnvironment);
+        jdbcEnvironment,
+        namingStrategy);
   }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsIncrementGenerator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsIncrementGenerator.java
index 91c17114fa..42caacf91a 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsIncrementGenerator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsIncrementGenerator.java
@@ -20,195 +20,65 @@ package 
org.grails.orm.hibernate.cfg.domainbinding.generator;
 
 import java.util.Properties;
 import org.grails.orm.hibernate.cfg.Identity;
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
 import org.hibernate.boot.model.relational.SqlStringGenerationContext;
+import 
org.hibernate.boot.model.relational.internal.SqlStringGenerationContextImpl;
 import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
-import org.hibernate.engine.spi.SharedSessionContractImplementor;
 import org.hibernate.generator.GeneratorCreationContext;
 import org.hibernate.id.IncrementGenerator;
 
+import static org.hibernate.id.IncrementGenerator.COLUMN;
+import static org.hibernate.id.IncrementGenerator.TABLES;
+import static org.hibernate.id.PersistentIdentifierGenerator.CATALOG;
+import static org.hibernate.id.PersistentIdentifierGenerator.SCHEMA;
+
 /**
- * Custom increment ID generator for Grails that extends Hibernate's 
IncrementGenerator.
- *
- * <p>⚠️ WARNING: This class contains REFLECTION-BASED HACKS and uses LEGACY 
HIBERNATE METHODS that
- * will be removed in Hibernate 8. This is a workaround for Hibernate 7 
limitations.
- *
- * <p>ISSUES WITH HIBERNATE 7: - IncrementGenerator.configure() does not 
properly initialize all
- * internal state - physicalTableNames, sql, and previousValueHolder fields 
are not set correctly -
- * The initialize() method may not work as expected with the default 
configuration - These issues
- * appear to be fixed in later Hibernate versions but present in early 
Hibernate 7
- *
- * <p>MIGRATION PATH FOR HIBERNATE 8: 1. Check if 
IncrementGenerator.configure() properly
- * initializes all fields 2. Remove all reflection-based field access 
(returnClassField,
- * columnField, etc.) 3. Remove the manual initialize() method calls 4. Remove 
the
- * previousValueHolder initialization hack 5. Simplify the generate() method 
to rely on parent class
- * behavior 6. Run full integration tests to verify increment ID generation 
works correctly
- *
- * @see org.hibernate.id.IncrementGenerator
+ * Grails-aware increment ID generator. Builds the standard {@link 
IncrementGenerator} parameters
+ * from GORM mapping metadata and delegates entirely to the parent class — no 
reflection required.
  */
 public class GrailsIncrementGenerator extends IncrementGenerator {
 
-  private boolean initialized = false;
-  private String resolvedTableName;
-  private String resolvedColumnName;
-  private Class<?> resolvedReturnClass;
-
   public GrailsIncrementGenerator(
       GeneratorCreationContext context,
       Identity mappedId,
-      GrailsHibernatePersistentEntity domainClass) {
+      GrailsHibernatePersistentEntity domainClass,
+      PersistentEntityNamingStrategy namingStrategy) {
+
     Properties params = new Properties();
     if (mappedId != null && mappedId.getProperties() != null) {
       params.putAll(mappedId.getProperties());
     }
 
-    // Fix the blank FROM clause: Resolve table name
-    org.grails.orm.hibernate.cfg.Mapping mapping = domainClass.getMappedForm();
-    String tableName = (mapping != null) ? mapping.getTableName() : null;
-    if (tableName == null || tableName.isEmpty()) {
-      tableName =
-          domainClass
-              .getJavaClass()
-              .getSimpleName()
-              .replaceAll("([a-z])([A-Z])", "$1_$2")
-              .toLowerCase();
-    }
-    this.resolvedTableName = tableName;
-    params.put("table", tableName);
+    // Use the entity's naming-strategy-aware table resolution:
+    // handles explicit mapping, table-per-hierarchy root, and 
PhysicalNamingStrategy fallback.
+    params.put(TABLES, domainClass.getTableName(namingStrategy));
 
+    org.grails.orm.hibernate.cfg.Mapping mapping = domainClass.getMappedForm();
     if (mapping != null && mapping.getTable() != null) {
-      if (mapping.getTable().getCatalog() != null) {
-        params.put("catalog", mapping.getTable().getCatalog());
-      }
-      if (mapping.getTable().getSchema() != null) {
-        params.put("schema", mapping.getTable().getSchema());
-      }
+      if (mapping.getTable().getCatalog() != null) params.put(CATALOG, 
mapping.getTable().getCatalog());
+      if (mapping.getTable().getSchema()  != null) params.put(SCHEMA,  
mapping.getTable().getSchema());
     }
 
-    // Resolve column name
+    // Resolve column name — fall back to "id" if the property path is dotted 
(composite)
     String columnName = context.getProperty().getName();
     if (columnName == null || columnName.contains(".")) {
-      columnName =
-          (mappedId != null && mappedId.getName() != null && 
!mappedId.getName().contains("."))
-              ? mappedId.getName()
-              : "id";
-    }
-    this.resolvedColumnName = columnName;
-    this.resolvedReturnClass = context.getType().getReturnedClass();
-    params.put("column", columnName);
-
-    // Initialize the internal Hibernate state
-    this.configure(context.getType(), params, context.getServiceRegistry());
-
-    // ⚠️ HACK: Manually ensure fields are set via reflection
-    // Reason: Hibernate 7's IncrementGenerator.configure() does not properly 
initialize
-    // returnClass and column fields. This will be fixed in Hibernate 8.
-    // TODO: Remove this reflection hack when upgrading to Hibernate 8
-    try {
-      Class<?> clazz = org.hibernate.id.IncrementGenerator.class;
-      java.lang.reflect.Field returnClassField = 
clazz.getDeclaredField("returnClass");
-      returnClassField.setAccessible(true);
-      returnClassField.set(this, resolvedReturnClass);
-
-      java.lang.reflect.Field columnField = clazz.getDeclaredField("column");
-      columnField.setAccessible(true);
-      columnField.set(this, resolvedColumnName);
-    } catch (Exception e) {
-      // Silently ignore - fields may be set through other means or parent 
initialize
-    }
-
-    if (context.getDatabase() != null) {
-      this.registerExportables(context.getDatabase());
+      columnName = (mappedId != null && mappedId.getName() != null
+          && !mappedId.getName().contains(".")) ? mappedId.getName() : "id";
     }
-  }
-
-  @Override
-  public Object generate(SharedSessionContractImplementor session, Object 
object) {
-    if (!initialized) {
-      synchronized (this) {
-        if (!initialized) {
-          SqlStringGenerationContext context = 
session.getFactory().getSqlStringGenerationContext();
-
-          try {
-            Class<?> clazz = org.hibernate.id.IncrementGenerator.class;
-
-            // ⚠️ HACK: Ensure returnClass is set via reflection
-            // Reason: Legacy Hibernate 7 workaround. Use proper API in 
Hibernate 8.
-            java.lang.reflect.Field returnClassField = 
clazz.getDeclaredField("returnClass");
-            returnClassField.setAccessible(true);
-            if (returnClassField.get(this) == null) {
-              returnClassField.set(this, resolvedReturnClass);
-            }
-
-            // ⚠️ HACK: Ensure column is set via reflection
-            // Reason: Legacy Hibernate 7 workaround. Use proper API in 
Hibernate 8.
-            java.lang.reflect.Field columnField = 
clazz.getDeclaredField("column");
-            columnField.setAccessible(true);
-            if (columnField.get(this) == null) {
-              columnField.set(this, resolvedColumnName);
-            }
-
-            // ⚠️ HACK: Set physicalTableNames BEFORE calling initialize
-            // Reason: IncrementGenerator.initialize() in Hibernate 7 doesn't 
properly initialize
-            // this field from the table name. This hack provides it directly.
-            // TODO: Remove when Hibernate 8 is released and tested
-            java.lang.reflect.Field field = 
clazz.getDeclaredField("physicalTableNames");
-            field.setAccessible(true);
-            if (field.get(this) == null) {
-              JdbcEnvironment jdbcEnvironment = 
session.getJdbcServices().getJdbcEnvironment();
-              field.set(
-                  this,
-                  java.util.List.of(
-                      jdbcEnvironment
-                          .getQualifiedObjectNameFormatter()
-                          .format(
-                              new 
org.hibernate.boot.model.relational.QualifiedTableName(
-                                  null,
-                                  null,
-                                  jdbcEnvironment
-                                      .getIdentifierHelper()
-                                      .toIdentifier(resolvedTableName)),
-                              context.getDialect())));
-            }
-
-            try {
-              // Call parent initialize() - may fail or partially initialize 
in Hibernate 7
-              this.initialize(context);
-            } catch (Exception e) {
-              // Silently ignore - we'll manually set required fields below
-            }
-
-            // ⚠️ HACK: Ensure sql is set via reflection
-            // Reason: IncrementGenerator.initialize() may not set the SQL 
query properly.
-            // This hack ensures we have a valid SQL query for fetching the 
max ID.
-            // TODO: Remove in Hibernate 8 and verify initialize() sets this 
correctly
-            java.lang.reflect.Field sqlField = clazz.getDeclaredField("sql");
-            sqlField.setAccessible(true);
-            if (sqlField.get(this) == null) {
-              sqlField.set(
-                  this, "select max(" + resolvedColumnName + ") from " + 
resolvedTableName);
-            }
-
-            // ⚠️ HACK: Initialize previousValueHolder via reflection
-            // Reason: This is a legacy Hibernate 7 workaround to ensure the 
holder is initialized.
-            // The initialize() method should handle this, but doesn't in all 
cases.
-            // TODO: Remove this entire block in Hibernate 8 and rely on 
parent class
-            java.lang.reflect.Field holderField = 
clazz.getDeclaredField("previousValueHolder");
-            holderField.setAccessible(true);
-            if (holderField.get(this) == null) {
-              java.lang.reflect.Method initMethod =
-                  clazz.getDeclaredMethod(
-                      "initializePreviousValueHolder", 
SharedSessionContractImplementor.class);
-              initMethod.setAccessible(true);
-              initMethod.invoke(this, session);
-            }
-          } catch (Exception e) {
-            // Silently ignore - parent generate() may still work with partial 
initialization
-          }
-          initialized = true;
-        }
-      }
-    }
-    return super.generate(session, object);
+    params.put(COLUMN, columnName);
+
+    // Delegate to the standard configure() — sets returnClass, column, 
physicalTableNames
+    configure(context, params);
+
+    // Build SqlStringGenerationContext and initialize the SQL query
+    JdbcEnvironment jdbcEnvironment = 
context.getDatabase().getJdbcEnvironment();
+    var physicalName = 
context.getDatabase().getDefaultNamespace().getPhysicalName();
+    String catalog = physicalName.catalog() != null ? 
physicalName.catalog().getCanonicalName() : null;
+    String schema  = physicalName.schema()  != null ? 
physicalName.schema().getCanonicalName()  : null;
+    SqlStringGenerationContext sqlContext =
+        SqlStringGenerationContextImpl.fromExplicit(jdbcEnvironment, 
context.getDatabase(), catalog, schema);
+    initialize(sqlContext);
   }
 }
+
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceGeneratorEnum.groovy
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceGeneratorEnum.groovy
index e7d8e06905..04e1f4dc44 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceGeneratorEnum.groovy
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceGeneratorEnum.groovy
@@ -7,6 +7,7 @@ import org.hibernate.generator.Generator
 import org.hibernate.generator.GeneratorCreationContext
 import org.hibernate.id.uuid.UuidGenerator
 
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity
 import org.grails.orm.hibernate.cfg.Identity
 
@@ -51,8 +52,9 @@ enum GrailsSequenceGeneratorEnum {
             GeneratorCreationContext context,
             Identity mappedId,
             GrailsHibernatePersistentEntity domainClass,
-            JdbcEnvironment jdbcEnvironment) {
-        return getGenerator(fromName(name).orElse(NATIVE), context, mappedId, 
domainClass, jdbcEnvironment)
+            JdbcEnvironment jdbcEnvironment,
+            PersistentEntityNamingStrategy namingStrategy) {
+        return getGenerator(fromName(name).orElse(NATIVE), context, mappedId, 
domainClass, jdbcEnvironment, namingStrategy)
     }
 
     static Generator getGenerator(
@@ -60,14 +62,15 @@ enum GrailsSequenceGeneratorEnum {
             GeneratorCreationContext context,
             Identity mappedId,
             GrailsHibernatePersistentEntity domainClass,
-            JdbcEnvironment jdbcEnvironment) {
+            JdbcEnvironment jdbcEnvironment,
+            PersistentEntityNamingStrategy namingStrategy) {
         switch (sequenceGeneratorEnum) {
             case IDENTITY:
                 return new GrailsIdentityGenerator(context, mappedId)
             case [SEQUENCE, SEQUENCE_IDENTITY, HILO]:
                 return new GrailsSequenceStyleGenerator(context, mappedId, 
jdbcEnvironment)
             case INCREMENT:
-                return new GrailsIncrementGenerator(context, mappedId, 
domainClass)
+                return new GrailsIncrementGenerator(context, mappedId, 
domainClass, namingStrategy)
             case [UUID, UUID2]:
                 return new UuidGenerator(context.getType().getReturnedClass())
             case ASSIGNED:
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapper.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapper.java
index 8621453eb0..0bc7c3d7c7 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapper.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapper.java
@@ -22,6 +22,7 @@ import static 
org.grails.orm.hibernate.cfg.domainbinding.generator.GrailsSequenc
 import static 
org.grails.orm.hibernate.cfg.domainbinding.generator.GrailsSequenceGeneratorEnum.fromName;
 
 import org.grails.orm.hibernate.cfg.Identity;
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
 import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
 import org.hibernate.generator.Generator;
@@ -34,8 +35,9 @@ public class GrailsSequenceWrapper {
       GeneratorCreationContext context,
       Identity mappedId,
       GrailsHibernatePersistentEntity domainClass,
-      JdbcEnvironment jdbcEnvironment) {
+      JdbcEnvironment jdbcEnvironment,
+      PersistentEntityNamingStrategy namingStrategy) {
     return GrailsSequenceGeneratorEnum.getGenerator(
-        fromName(name).orElse(NATIVE), context, mappedId, domainClass, 
jdbcEnvironment);
+        fromName(name).orElse(NATIVE), context, mappedId, domainClass, 
jdbcEnvironment, namingStrategy);
   }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java
index 2c7653f6d8..0472e06809 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java
@@ -19,6 +19,7 @@
 package org.grails.orm.hibernate.cfg.domainbinding.util;
 
 import org.grails.orm.hibernate.cfg.Identity;
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy;
 import 
org.grails.orm.hibernate.cfg.domainbinding.generator.GrailsSequenceWrapper;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
 import org.hibernate.boot.spi.MetadataBuildingContext;
@@ -32,18 +33,21 @@ import org.hibernate.mapping.Table;
 public class BasicValueIdCreator {
 
   private final JdbcEnvironment jdbcEnvironment;
+  private final PersistentEntityNamingStrategy namingStrategy;
   private final GrailsSequenceWrapper grailsSequenceWrapper;
 
   /** Creates a new {@link BasicValueIdCreator} instance. */
-  public BasicValueIdCreator(JdbcEnvironment jdbcEnvironment) {
+  public BasicValueIdCreator(JdbcEnvironment jdbcEnvironment, 
PersistentEntityNamingStrategy namingStrategy) {
     this.jdbcEnvironment = jdbcEnvironment;
+    this.namingStrategy = namingStrategy;
     this.grailsSequenceWrapper = new GrailsSequenceWrapper();
   }
 
   /** Creates a new {@link BasicValueIdCreator} instance. */
   protected BasicValueIdCreator(
-      JdbcEnvironment jdbcEnvironment, GrailsSequenceWrapper 
grailsSequenceWrapper) {
+      JdbcEnvironment jdbcEnvironment, PersistentEntityNamingStrategy 
namingStrategy, GrailsSequenceWrapper grailsSequenceWrapper) {
     this.jdbcEnvironment = jdbcEnvironment;
+    this.namingStrategy = namingStrategy;
     this.grailsSequenceWrapper = grailsSequenceWrapper;
   }
 
@@ -69,6 +73,6 @@ public class BasicValueIdCreator {
       GeneratorCreationContext context,
       String generatorName) {
     return grailsSequenceWrapper.getGenerator(
-        generatorName, context, mappedId, domainClass, jdbcEnvironment);
+        generatorName, context, mappedId, domainClass, jdbcEnvironment, 
namingStrategy);
   }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy
index e1779f62a1..4ea6994586 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy
@@ -3,6 +3,7 @@ package org.grails.orm.hibernate.cfg.domainbinding
 import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment
 
 import grails.gorm.specs.HibernateGormDatastoreSpec
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity
 import org.grails.orm.hibernate.cfg.Identity
 import org.hibernate.boot.spi.MetadataBuildingContext
@@ -26,17 +27,19 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
     Table table
     GrailsSequenceWrapper grailsSequenceWrapper
     JdbcEnvironment jdbcEnvironment
+    PersistentEntityNamingStrategy namingStrategy
 
     def setup() {
         metadataBuildingContext = 
getGrailsDomainBinder().getMetadataBuildingContext()
         jdbcEnvironment = Mock(JdbcEnvironment)
+        namingStrategy = Mock(PersistentEntityNamingStrategy)
         grailsSequenceWrapper = Mock(GrailsSequenceWrapper)
         entity = new RootClass(metadataBuildingContext)
         table = new Table("test_table")
         entity.setTable(table)
         // Use a real BasicValue to test that the generator creator lambda is 
correctly set and executable
         basicValue = new BasicValue(metadataBuildingContext, table)
-        creator = new BasicValueIdCreator(jdbcEnvironment, 
grailsSequenceWrapper)
+        creator = new BasicValueIdCreator(jdbcEnvironment, namingStrategy, 
grailsSequenceWrapper)
     }
 
     @Unroll
@@ -54,7 +57,7 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
         Generator generator = generatorCreator.createGenerator(context)
 
         then:
-        1 * grailsSequenceWrapper.getGenerator(generatorName, context, 
mappedId, domainClass, jdbcEnvironment) >> mockGenerator
+        1 * grailsSequenceWrapper.getGenerator(generatorName, context, 
mappedId, domainClass, jdbcEnvironment, namingStrategy) >> mockGenerator
         generator == mockGenerator
 
         where:
@@ -83,7 +86,7 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
         Generator generator = generatorCreator.createGenerator(context)
 
         then:
-        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.NATIVE.toString(),
 context, null, domainClass, jdbcEnvironment) >> mockGenerator
+        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.NATIVE.toString(),
 context, null, domainClass, jdbcEnvironment, namingStrategy) >> mockGenerator
         generator == mockGenerator
     }
 
@@ -99,7 +102,7 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
         Generator generator = generatorCreator.createGenerator(context)
 
         then:
-        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.SEQUENCE_IDENTITY.toString(),
 context, null, domainClass, jdbcEnvironment) >> mockGenerator
+        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.SEQUENCE_IDENTITY.toString(),
 context, null, domainClass, jdbcEnvironment, namingStrategy) >> mockGenerator
         generator == mockGenerator
     }
 
@@ -117,7 +120,7 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
         Generator generator = generatorCreator.createGenerator(context)
 
         then:
-        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.SEQUENCE_IDENTITY.toString(),
 context, mappedId, domainClass, jdbcEnvironment) >> mockGenerator
+        1 * 
grailsSequenceWrapper.getGenerator(GrailsSequenceGeneratorEnum.SEQUENCE_IDENTITY.toString(),
 context, mappedId, domainClass, jdbcEnvironment, namingStrategy) >> 
mockGenerator
         generator == mockGenerator
     }
 
@@ -134,6 +137,6 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
         generatorCreator.createGenerator(context)
 
         then:
-        1 * grailsSequenceWrapper.getGenerator("custom", context, mappedId, 
domainClass, jdbcEnvironment) >> Mock(Generator)
+        1 * grailsSequenceWrapper.getGenerator("custom", context, mappedId, 
domainClass, jdbcEnvironment, namingStrategy) >> Mock(Generator)
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
index b51ef3585c..58ca44c4d6 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
@@ -106,7 +106,7 @@ class CollectionBinderSpec extends 
HibernateGormDatastoreSpec {
         )
         CompositeIdBinder compositeIdBinder = new 
CompositeIdBinder(metadataBuildingContext, componentBinder, componentUpdater, 
propertyBinder)
         PropertyBinder propertyBinderHelper = new PropertyBinder()
-        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment), simpleValueBinder, propertyBinderHelper)
+        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment, namingStrategy), simpleValueBinder, 
propertyBinderHelper)
         IdentityBinder identityBinder = new IdentityBinder(simpleIdBinder, 
compositeIdBinder)
         VersionBinder versionBinder = new 
VersionBinder(metadataBuildingContext, simpleValueBinder, propertyBinderHelper, 
BasicValue::new)
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
index 0301f68639..c5f1ad56eb 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinderSpec.groovy
@@ -165,7 +165,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
         componentBinder.setGrailsPropertyBinder(propertyBinder)
         CompositeIdBinder compositeIdBinder = new 
CompositeIdBinder(metadataBuildingContext, componentBinder, componentUpdater, 
propertyBinder);
         PropertyBinder propertyBinderHelper = new PropertyBinder()
-        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment), simpleValueBinder, propertyBinderHelper)
+        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment, namingStrategy), simpleValueBinder, 
propertyBinderHelper)
         IdentityBinder identityBinder = new IdentityBinder(simpleIdBinder, 
compositeIdBinder)
         VersionBinder versionBinder = new 
VersionBinder(metadataBuildingContext, simpleValueBinder, propertyBinderHelper, 
BasicValue::new)
         NaturalIdentifierBinder naturalIdentifierBinder = new 
NaturalIdentifierBinder()
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy
index 5ff513e0a8..8ff83544ce 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinderSpec.groovy
@@ -36,7 +36,7 @@ class RootPersistentClassCommonValuesBinderSpec extends 
HibernateGormDatastoreSp
         def jdbcEnvironment = gormDomainBinder.getJdbcEnvironment()
         def simpleValueBinder = new SimpleValueBinder(metadataBuildingContext, 
namingStrategy, jdbcEnvironment)
         def propertyBinder = new PropertyBinder()
-        def simpleIdBinder = new SimpleIdBinder(metadataBuildingContext, 
namingStrategy, jdbcEnvironment, new BasicValueIdCreator(jdbcEnvironment), 
simpleValueBinder, propertyBinder)
+        def simpleIdBinder = new SimpleIdBinder(metadataBuildingContext, 
namingStrategy, jdbcEnvironment, new BasicValueIdCreator(jdbcEnvironment, 
namingStrategy), simpleValueBinder, propertyBinder)
         def compositeIdBinder = new CompositeIdBinder(metadataBuildingContext, 
null, null, null) 
         identityBinder = new IdentityBinder(simpleIdBinder, compositeIdBinder)
         versionBinder = new VersionBinder(metadataBuildingContext, 
simpleValueBinder, propertyBinder, BasicValue::new)
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapperSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapperSpec.groovy
index 45db49a500..3338848e25 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapperSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/generator/GrailsSequenceWrapperSpec.groovy
@@ -1,6 +1,7 @@
 package org.grails.orm.hibernate.cfg.domainbinding.generator
 
 import grails.gorm.specs.HibernateGormDatastoreSpec
+import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity
 import org.grails.orm.hibernate.cfg.Identity
 import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment
@@ -18,12 +19,13 @@ class GrailsSequenceWrapperSpec extends 
HibernateGormDatastoreSpec {
         def mappedId = Mock(Identity)
         def domainClass = Mock(GrailsHibernatePersistentEntity)
         def jdbcEnvironment = Mock(JdbcEnvironment)
-        
+        def namingStrategy = Mock(PersistentEntityNamingStrategy)
+
         // Setup minimal mocks for assigned generator which is simple to 
instantiate
         context.getProperty() >> null 
 
         when:
-        def generator = wrapper.getGenerator("assigned", context, mappedId, 
domainClass, jdbcEnvironment)
+        def generator = wrapper.getGenerator("assigned", context, mappedId, 
domainClass, jdbcEnvironment, namingStrategy)
 
         then:
         generator instanceof org.hibernate.generator.Assigned
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
index 059c052a28..81c173c3d8 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
@@ -105,7 +105,7 @@ class ListSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         )
         CompositeIdBinder compositeIdBinder = new 
CompositeIdBinder(metadataBuildingContext, componentBinder, componentUpdater, 
propertyBinder)
         PropertyBinder propertyBinderHelper = new PropertyBinder()
-        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment), simpleValueBinder, propertyBinderHelper)
+        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment, namingStrategy), simpleValueBinder, 
propertyBinderHelper)
         IdentityBinder identityBinder = new IdentityBinder(simpleIdBinder, 
compositeIdBinder)
         VersionBinder versionBinder = new 
VersionBinder(metadataBuildingContext, simpleValueBinder, propertyBinderHelper, 
BasicValue::new)
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
index 86f0b4d474..8449daef7c 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
@@ -105,7 +105,7 @@ class MapSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         )
         CompositeIdBinder compositeIdBinder = new 
CompositeIdBinder(metadataBuildingContext, componentBinder, componentUpdater, 
propertyBinder)
         PropertyBinder propertyBinderHelper = new PropertyBinder()
-        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment), simpleValueBinder, propertyBinderHelper)
+        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext, namingStrategy, jdbcEnvironment, new 
BasicValueIdCreator(jdbcEnvironment, namingStrategy), simpleValueBinder, 
propertyBinderHelper)
         IdentityBinder identityBinder = new IdentityBinder(simpleIdBinder, 
compositeIdBinder)
         VersionBinder versionBinder = new 
VersionBinder(metadataBuildingContext, simpleValueBinder, propertyBinderHelper, 
BasicValue::new)
 


Reply via email to