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 8e11ab83c71f18e0f0c8bc01544643d3861699d8
Author: Walter B Duque de Estrada <[email protected]>
AuthorDate: Mon Jan 19 08:45:07 2026 -0600

    update progress
---
 .../orm/hibernate/cfg/GrailsDomainBinder.java      |  4 +--
 .../cfg/domainbinding/BasicValueIdCreator.java     | 18 +++++++++----
 .../cfg/domainbinding/GrailsTableGenerator.java    | 31 +++++++++++++++++++---
 .../cfg/domainbinding/SimpleIdBinder.java          |  7 ++---
 .../domainbinding/BasicValueIdCreatorSpec.groovy   |  4 +--
 5 files changed, 48 insertions(+), 16 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
index 78c584b852..8f78bdc9be 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java
@@ -2010,8 +2010,8 @@ public class GrailsDomainBinder
     @SuppressWarnings("unchecked")
     private void bindSimpleId(PersistentProperty identifier, RootClass entity,
                                 InFlightMetadataCollector mappings, Identity 
mappedId, String sessionFactoryBeanName) {
-        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext,namingStrategy);
-        simpleIdBinder.bindSimpleId(identifier, entity, mappedId);
+        SimpleIdBinder simpleIdBinder = new 
SimpleIdBinder(metadataBuildingContext,namingStrategy, getJdbcEnvironment());
+        simpleIdBinder.bindSimpleId(identifier, entity, mappedId, 
getJdbcEnvironment());
 
     }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java
index f7dbf96098..5a64305d04 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java
@@ -7,9 +7,10 @@ import java.util.Properties;
 import java.util.function.BiFunction;
 
 import org.hibernate.boot.spi.MetadataBuildingContext;
+import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
+import org.hibernate.generator.Assigned;
 import org.hibernate.generator.Generator;
 import org.hibernate.generator.GeneratorCreationContext;
-import org.hibernate.id.Assigned;
 import org.hibernate.id.IncrementGenerator;
 import org.hibernate.id.enhanced.SequenceStyleGenerator;
 import org.hibernate.id.enhanced.TableGenerator;
@@ -22,17 +23,24 @@ import org.grails.orm.hibernate.cfg.Identity;
 public class BasicValueIdCreator {
 
     private final MetadataBuildingContext metadataBuildingContext;
+    private JdbcEnvironment jdbcEnvironment;
     private final Map<String, BiFunction<GeneratorCreationContext, Identity, 
Generator>> generatorFactories;
 
-    public BasicValueIdCreator(MetadataBuildingContext 
metadataBuildingContext) {
+    public BasicValueIdCreator(MetadataBuildingContext 
metadataBuildingContext, JdbcEnvironment jdbcEnvironment) {
         this.metadataBuildingContext = metadataBuildingContext;
+        this.jdbcEnvironment = jdbcEnvironment;
         this.generatorFactories = new HashMap<>();
         initializeGeneratorFactories();
     }
 
-    protected BasicValueIdCreator(MetadataBuildingContext 
metadataBuildingContext, Map<String, BiFunction<GeneratorCreationContext, 
Identity, Generator>> generatorFactories) {
+    protected BasicValueIdCreator(MetadataBuildingContext 
metadataBuildingContext
+                                  , JdbcEnvironment  jdbcEnvironment
+            , Map<String, BiFunction<GeneratorCreationContext
+                    , Identity
+                    , Generator>> generatorFactories) {
         this.metadataBuildingContext = metadataBuildingContext;
         this.generatorFactories = generatorFactories;
+        this.jdbcEnvironment =jdbcEnvironment;
     }
 
     private void initializeGeneratorFactories() {
@@ -46,8 +54,8 @@ public class BasicValueIdCreator {
         generatorFactories.put("uuid", (context, mappedId) -> new 
UuidGenerator(context.getType().getReturnedClass()));
         generatorFactories.put("uuid2", (context, mappedId) -> new 
UuidGenerator(context.getType().getReturnedClass()));
         generatorFactories.put("assigned", (context, mappedId) -> new 
Assigned());
-        generatorFactories.put("table", (context, mappedId) -> new 
GrailsTableGenerator(context, mappedId));
-        generatorFactories.put("enhanced-table", (context, mappedId) -> new 
GrailsTableGenerator(context,mappedId));
+        generatorFactories.put("table", (context, mappedId) -> new 
GrailsTableGenerator(context, mappedId, jdbcEnvironment));
+        generatorFactories.put("enhanced-table", (context, mappedId) -> new 
GrailsTableGenerator(context,mappedId, jdbcEnvironment));
         generatorFactories.put("hilo", (context, mappedId) -> new 
SequenceStyleGenerator());
     }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsTableGenerator.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsTableGenerator.java
index 336edfa39d..c8703468b6 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsTableGenerator.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsTableGenerator.java
@@ -1,5 +1,8 @@
 package org.grails.orm.hibernate.cfg.domainbinding;
 
+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.generator.GeneratorCreationContext;
 import org.hibernate.id.enhanced.TableGenerator;
 import org.hibernate.id.enhanced.StandardOptimizerDescriptor;
@@ -10,7 +13,7 @@ import java.util.Properties;
 
 public class GrailsTableGenerator extends TableGenerator {
 
-    public GrailsTableGenerator(GeneratorCreationContext context, Identity 
mappedId) {
+    public GrailsTableGenerator(GeneratorCreationContext context, Identity 
mappedId, JdbcEnvironment jdbcEnvironment) {
         Properties generatorProps = Optional.ofNullable(mappedId)
                 .map(Identity::getProperties)
                 .orElse(new Properties());
@@ -36,8 +39,28 @@ public class GrailsTableGenerator extends TableGenerator {
 
         // Fixes the "SQL to format should not be null" error
         this.configure(context, generatorProps);
+        var database = context.getDatabase();
+        this.registerExportables(database);
+        // Get the Name record from the physical name
+        var physicalName = database.getDefaultNamespace().getPhysicalName();
 
-        // Ensures the hibernate_sequences table and initial rows are in the 
DDL
-//        this.registerExportables(context.getDatabase());
-    }
+        // Use the record component accessors (catalog() and schema())
+        // instead of the deprecated getCatalog()/getSchema()
+        String catalog = (physicalName.catalog() != null)
+                ? physicalName.catalog().getCanonicalName()
+                : null;
+
+        String schema = (physicalName.schema() != null)
+                ? physicalName.schema().getCanonicalName()
+                : null;
+
+        // Build the context and initialize templates
+        SqlStringGenerationContext context1 = 
SqlStringGenerationContextImpl.fromExplicit(
+                jdbcEnvironment,
+                database,
+                catalog,
+                schema
+        );
+        this.initialize(context1);
+     }
 }
\ No newline at end of file
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java
index e48b5251d2..48286fef28 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java
@@ -1,6 +1,7 @@
 package org.grails.orm.hibernate.cfg.domainbinding;
 
 import org.hibernate.boot.spi.MetadataBuildingContext;
+import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
 import org.hibernate.mapping.BasicValue;
 import org.hibernate.mapping.PrimaryKey;
 import org.hibernate.mapping.Property;
@@ -20,8 +21,8 @@ public class SimpleIdBinder {
     private final SimpleValueBinder simpleValueBinder;
     private final PropertyBinder propertyBinder;
 
-    public SimpleIdBinder(MetadataBuildingContext metadataBuildingContext, 
PersistentEntityNamingStrategy namingStrategy)  {
-        this.basicValueIdCreator = new 
BasicValueIdCreator(metadataBuildingContext);
+    public SimpleIdBinder(MetadataBuildingContext metadataBuildingContext, 
PersistentEntityNamingStrategy namingStrategy, JdbcEnvironment jdbcEnvironment) 
 {
+        this.basicValueIdCreator = new 
BasicValueIdCreator(metadataBuildingContext, jdbcEnvironment);
         this.hibernateEntityWrapper = new HibernateEntityWrapper();
         this.simpleValueBinder =new SimpleValueBinder(namingStrategy);
         this.propertyBinder = new PropertyBinder();
@@ -35,7 +36,7 @@ public class SimpleIdBinder {
     }
 
 
-    public void bindSimpleId(PersistentProperty identifier, RootClass entity, 
Identity mappedId) {
+    public void bindSimpleId(PersistentProperty identifier, RootClass entity, 
Identity mappedId, JdbcEnvironment jdbcEnvironment) {
 
         boolean useSequence = 
hibernateEntityWrapper.getMappedForm(identifier.getOwner()).isTablePerConcreteClass();
         // create the id value
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 0ee5aba33c..834c011aa4 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
@@ -23,10 +23,10 @@ class BasicValueIdCreatorSpec extends 
HibernateGormDatastoreSpec {
     def setup() {
         metadataBuildingContext = 
getGrailsDomainBinder().getMetadataBuildingContext()
         generatorFactories = [:]
-        creator = new BasicValueIdCreator(metadataBuildingContext, 
generatorFactories)
+        creator = new BasicValueIdCreator(metadataBuildingContext, 
getGrailsDomainBinder().getJdbcEnvironment(), generatorFactories)
         entity = new RootClass(metadataBuildingContext)
         table = new Table("test_table")
-        entity.setTable(table)
+        entity.setTable(table)\
     }
 
     @Unroll

Reply via email to