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 707490c275892aae9042874723b2293aca982581
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Fri Feb 6 19:03:54 2026 -0600

    progress
---
 .../orm/hibernate/cfg/GrailsDomainBinder.java      | 29 +----------------
 .../cfg/domainbinding/ComponentPropertyBinder.java | 19 +++++------
 .../cfg/domainbinding/GrailsPropertyBinder.java    |  5 ++-
 .../domainbinding/GrailsPropertyBinderSpec.groovy  | 38 ++++++----------------
 4 files changed, 21 insertions(+), 70 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 031465217d..9e8769918c 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
@@ -17,13 +17,9 @@ package org.grails.orm.hibernate.cfg;
 import groovy.lang.Closure;
 
 import org.grails.datastore.mapping.core.connections.ConnectionSource;
-import org.grails.datastore.mapping.model.DatastoreConfigurationException;
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.model.PersistentProperty;
 import org.grails.datastore.mapping.model.config.GormProperties;
-import org.grails.datastore.mapping.model.types.Association;
-import org.grails.datastore.mapping.model.types.Basic;
-import org.grails.datastore.mapping.model.types.ManyToMany;
 import org.grails.datastore.mapping.model.types.TenantId;
 import org.grails.orm.hibernate.cfg.domainbinding.ClassBinder;
 import org.grails.orm.hibernate.cfg.domainbinding.ColumnConfigToColumnBinder;
@@ -32,66 +28,43 @@ import 
org.grails.orm.hibernate.cfg.domainbinding.NamingStrategyProvider;
 import org.grails.orm.hibernate.cfg.domainbinding.SimpleValueColumnBinder;
 import org.grails.orm.hibernate.cfg.domainbinding.*;
 import 
org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolder;
-import 
org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionType;
-import 
org.grails.orm.hibernate.cfg.domainbinding.secondpass.GrailsCollectionSecondPass;
-import org.grails.orm.hibernate.cfg.domainbinding.secondpass.ListSecondPass;
-import org.grails.orm.hibernate.cfg.domainbinding.secondpass.MapSecondPass;
 
 import org.checkerframework.checker.nullness.qual.NonNull;
-import org.hibernate.FetchMode;
 import org.hibernate.MappingException;
 import org.hibernate.boot.ResourceStreamLocator;
 import org.hibernate.boot.internal.MetadataBuildingContextRootImpl;
 import org.hibernate.boot.internal.RootMappingDefaults;
 import org.hibernate.boot.model.TypeContributions;
 import org.hibernate.boot.model.TypeContributor;
-import org.hibernate.boot.model.internal.BinderHelper;
 import org.hibernate.boot.spi.AdditionalMappingContributions;
 import org.hibernate.boot.spi.AdditionalMappingContributor;
 import org.hibernate.boot.spi.InFlightMetadataCollector;
 import org.hibernate.boot.spi.MetadataBuildingContext;
 import org.hibernate.engine.jdbc.env.spi.JdbcEnvironment;
 import org.hibernate.engine.spi.FilterDefinition;
-import org.hibernate.mapping.Backref;
 import org.hibernate.mapping.BasicValue;
 import org.hibernate.mapping.Collection;
 import org.hibernate.mapping.Column;
-import org.hibernate.mapping.Component;
 import org.hibernate.mapping.DependantValue;
 import org.hibernate.mapping.Formula;
-import org.hibernate.mapping.IndexBackref;
-import org.hibernate.mapping.IndexedCollection;
 import org.hibernate.mapping.JoinedSubclass;
-import org.hibernate.mapping.KeyValue;
-import org.hibernate.mapping.ManyToOne;
 import org.hibernate.mapping.OneToMany;
 import org.hibernate.mapping.PersistentClass;
 import org.hibernate.mapping.Property;
 import org.hibernate.mapping.RootClass;
-import org.hibernate.mapping.Selectable;
 import org.hibernate.mapping.SimpleValue;
 import org.hibernate.mapping.SingleTableSubclass;
 import org.hibernate.mapping.Subclass;
 import org.hibernate.mapping.Table;
 import org.hibernate.mapping.UnionSubclass;
-import org.hibernate.mapping.Value;
 import org.hibernate.metamodel.mapping.JdbcMapping;
 import org.hibernate.service.ServiceRegistry;
-import org.hibernate.type.StandardBasicTypes;
-import org.hibernate.type.Type;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.util.StringUtils;
 
-import java.util.ArrayList;
 import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.Optional;
-import java.util.StringTokenizer;
 
 import jakarta.annotation.Nonnull;
 
@@ -694,7 +667,7 @@ public class GrailsDomainBinder
 
 
         for (GrailsHibernatePersistentProperty currentGrailsProp : 
domainClass.getPersistentPropertiesToBind()) {
-           var value = grailsPropertyBinder.bindProperty(persistentClass, 
mappings, sessionFactoryBeanName, currentGrailsProp);
+           var value = grailsPropertyBinder.bindProperty(persistentClass, 
currentGrailsProp, mappings, sessionFactoryBeanName);
             
persistentClass.addProperty(propertyFromValueCreator.createProperty(value, 
currentGrailsProp));
         }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java
index 7d13e431a2..f37a487239 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentPropertyBinder.java
@@ -92,8 +92,7 @@ public class ComponentPropertyBinder {
         CollectionType collectionType = 
collectionHolder.get(currentGrailsProp.getType());
         if (collectionType != null) {
             // create collection
-            Collection collection = 
collectionType.create((HibernateToManyProperty) currentGrailsProp, 
persistentClass
-            );
+            Collection collection = 
collectionType.create((HibernateToManyProperty) currentGrailsProp, 
persistentClass);
             collectionBinder.bindCollection((HibernateToManyProperty) 
currentGrailsProp, collection, persistentClass, mappings, path, 
sessionFactoryBeanName);
             mappings.addCollectionBinding(collection);
             value = collection;
@@ -137,15 +136,13 @@ public class ComponentPropertyBinder {
             }
         }
 
-        if (value != null) {
-            Property persistentProperty = 
propertyFromValueCreator.createProperty(value, currentGrailsProp);
-            component.addProperty(persistentProperty);
-            if (componentProperty != null && componentProperty.getOwner() 
instanceof GrailsHibernatePersistentEntity ghpe && 
ghpe.isComponentPropertyNullable(componentProperty)) {
-                final Iterator<?> columnIterator = 
value.getColumns().iterator();
-                while (columnIterator.hasNext()) {
-                    Column c = (Column) columnIterator.next();
-                    c.setNullable(true);
-                }
+        Property persistentProperty = 
propertyFromValueCreator.createProperty(value, currentGrailsProp);
+        component.addProperty(persistentProperty);
+        if (componentProperty != null && componentProperty.getOwner() 
instanceof GrailsHibernatePersistentEntity ghpe && 
ghpe.isComponentPropertyNullable(componentProperty)) {
+            final Iterator<?> columnIterator = value.getColumns().iterator();
+            while (columnIterator.hasNext()) {
+                Column c = (Column) columnIterator.next();
+                c.setNullable(true);
             }
         }
     }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinder.java
index 604b123e91..2f5e65a02b 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/GrailsPropertyBinder.java
@@ -82,9 +82,8 @@ public class GrailsPropertyBinder {
     }
 
     public Value bindProperty(PersistentClass persistentClass
-            , @Nonnull InFlightMetadataCollector mappings
-            , String sessionFactoryBeanName
-            , @Nonnull GrailsHibernatePersistentProperty currentGrailsProp) {
+            , @Nonnull GrailsHibernatePersistentProperty currentGrailsProp, 
@Nonnull InFlightMetadataCollector mappings
+            , String sessionFactoryBeanName) {
         if (LOG.isDebugEnabled()) {
             LOG.debug("[GrailsPropertyBinder] Binding persistent property [" + 
currentGrailsProp.getName() + "]");
         }
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 4552bc65f9..57005abbb9 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
@@ -11,26 +11,8 @@ import org.hibernate.mapping.RootClass
 import org.hibernate.mapping.SimpleValue
 import org.grails.orm.hibernate.cfg.PropertyConfig
 import org.grails.orm.hibernate.cfg.ColumnConfig
-import 
org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolder
-import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionType
-import org.hibernate.boot.spi.InFlightMetadataCollector
-import org.hibernate.boot.spi.MetadataBuildingContext
-import org.hibernate.mapping.BasicValue
-import org.hibernate.mapping.Collection
-import org.hibernate.mapping.Component
-import org.hibernate.mapping.OneToOne
-import org.hibernate.mapping.PersistentClass
-import org.hibernate.mapping.Table
-import org.hibernate.mapping.Value
-import org.slf4j.Logger
-import org.slf4j.LoggerFactory
-
-import java.util.Arrays
-import java.util.HashMap
-import java.util.Properties
-import java.util.Optional
 
-import static org.grails.orm.hibernate.cfg.GrailsDomainBinder.EMPTY_PATH
+import org.hibernate.mapping.Value
 
 class GrailsPropertyBinderSpec extends HibernateGormDatastoreSpec {
 
@@ -56,7 +38,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def titleProp = persistentEntity.getPropertyByName("title") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", titleProp)
+        Value value = propertyBinder.bindProperty(rootClass, titleProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 titleProp))
 
         then:
@@ -78,7 +60,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def statusProp = persistentEntity.getPropertyByName("status") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", statusProp)
+        Value value = propertyBinder.bindProperty(rootClass, statusProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 statusProp))
 
         then:
@@ -104,7 +86,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def ownerProp = petEntity.getPropertyByName("owner") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", ownerProp)
+        Value value = propertyBinder.bindProperty(rootClass, ownerProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 ownerProp))
 
         then:
@@ -127,7 +109,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def addressProp = persistentEntity.getPropertyByName("homeAddress") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", addressProp)
+        Value value = propertyBinder.bindProperty(rootClass, addressProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 addressProp))
 
         then:
@@ -155,7 +137,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def petsProp = personEntity.getPropertyByName("pets") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", petsProp)
+        Value value = propertyBinder.bindProperty(rootClass, petsProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 petsProp))
 
         then:
@@ -194,7 +176,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def booksProp = authorEntity.getPropertyByName("books") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", booksProp)
+        Value value = propertyBinder.bindProperty(rootClass, booksProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 booksProp))
         collector.processSecondPasses(binder.getMetadataBuildingContext())
 
@@ -233,7 +215,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def booksProp = authorEntity.getPropertyByName("books") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", booksProp)
+        Value value = propertyBinder.bindProperty(rootClass, booksProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 booksProp))
         collector.processSecondPasses(binder.getMetadataBuildingContext())
 
@@ -294,7 +276,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         def childBookProp = authorEntity.getPropertyByName("childBook") as 
GrailsHibernatePersistentProperty
-        Value value = propertyBinder.bindProperty(rootClass, collector, 
"sessionFactory", childBookProp)
+        Value value = propertyBinder.bindProperty(rootClass, childBookProp, 
collector, "sessionFactory")
         
rootClass.addProperty(binder.getPropertyFromValueCreator().createProperty(value,
 childBookProp))
         // Process second passes to ensure Hibernate's internal mappings are 
finalized
         collector.processSecondPasses(binder.getMetadataBuildingContext())
@@ -365,7 +347,7 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
 
         when:
         // Capture the return value of bindProperty
-        def resultValue = propertyBinder.bindProperty(rootClass, mappings, 
"sessionFactory", currentGrailsProp)
+        def resultValue = propertyBinder.bindProperty(rootClass, 
currentGrailsProp, mappings, "sessionFactory")
 
         then:
         // Assert that bindProperty returns a Value object

Reply via email to