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 8e2d0397d55647e69b4b1df5268a2a0559a49099
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Sat Feb 7 08:40:39 2026 -0600

    progress
---
 .../cfg/GrailsHibernatePersistentProperty.java     | 17 ++++++++++++-----
 .../cfg/domainbinding/CollectionBinder.java        | 22 +---------------------
 .../domainbinding/CollectionSecondPassBinder.java  |  4 ----
 .../cfg/domainbinding/MapSecondPassBinder.java     | 13 ++-----------
 4 files changed, 15 insertions(+), 41 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java
index 6b98c2926a..7430a6c596 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java
@@ -118,10 +118,17 @@ public interface GrailsHibernatePersistentProperty 
extends PersistentProperty<Pr
     }
 
     default String getIndexColumnName(PersistentEntityNamingStrategy 
namingStrategy) {
-        PropertyConfig pc = getMappedForm();
-        if (pc.getIndexColumn() != null && pc.getIndexColumn().getColumn() != 
null) {
-            return pc.getIndexColumn().getColumn();
-        }
-        return namingStrategy.resolveColumnName(getName()) + 
GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME;
+        return Optional.ofNullable(getMappedForm())
+                .map(PropertyConfig::getIndexColumn)
+                .map(PropertyConfig::getColumn)
+                .orElseGet(() -> namingStrategy.resolveColumnName(getName()) + 
GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME);
+    }
+
+    default String getMapElementName(PersistentEntityNamingStrategy 
namingStrategy) {
+        return Optional.ofNullable(getMappedForm())
+                .map(PropertyConfig::getJoinTable)
+                .map(JoinTable::getColumn)
+                .map(ColumnConfig::getName)
+                .orElseGet(() -> namingStrategy.resolveColumnName(getName()) + 
GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME);
     }
 }
\ No newline at end of file
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java
index 1687ef0417..b9b25a9d4c 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java
@@ -132,15 +132,6 @@ public class CollectionBinder {
         collectionSecondPassBinder.bindCollectionSecondPass(property, 
mappings, persistentClasses, collection, sessionFactoryBeanName);
     }
 
-    public void bindListSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
-                                   Map<?, ?> persistentClasses, 
org.hibernate.mapping.List list, String sessionFactoryBeanName) {
-        listSecondPassBinder.bindListSecondPass(property, mappings, 
persistentClasses, list, sessionFactoryBeanName);
-    }
-
-    public void bindMapSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
-                                  Map<?, ?> persistentClasses, 
org.hibernate.mapping.Map map, String sessionFactoryBeanName) {
-        mapSecondPassBinder.bindMapSecondPass(property, mappings, 
persistentClasses, map, sessionFactoryBeanName);
-    }
 
     private String getNameForPropertyAndPath(PersistentProperty property, 
String path) {
         if (GrailsHibernateUtil.isNotEmpty(path)) {
@@ -186,18 +177,7 @@ public class CollectionBinder {
 
 
 
-    public Property getProperty(PersistentClass associatedClass, String 
propertyName) throws MappingException {
-        try {
-            return associatedClass.getProperty(propertyName);
-        }
-        catch (MappingException e) {
-            //maybe it's squirreled away in a composite primary key
-            if (associatedClass.getKey() instanceof Component) {
-                return ((Component) 
associatedClass.getKey()).getProperty(propertyName);
-            }
-            throw e;
-        }
-    }
+
 
     public String 
getMultiTenantFilterCondition(GrailsHibernatePersistentEntity referenced) {
         return 
collectionSecondPassBinder.getMultiTenantFilterCondition(referenced);
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java
index bbe589b0ba..0d22e749e3 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java
@@ -17,7 +17,6 @@ import org.hibernate.boot.spi.InFlightMetadataCollector;
 import org.hibernate.boot.spi.MetadataBuildingContext;
 import org.hibernate.mapping.*;
 import org.hibernate.mapping.Collection;
-import org.hibernate.type.StandardBasicTypes;
 import org.hibernate.type.Type;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -578,7 +577,4 @@ public class CollectionSecondPassBinder {
         }
     }
 
-    public boolean hasJoinTableColumnNameMapping(PropertyConfig pc) {
-        return pc != null && pc.getJoinTable() != null && 
pc.getJoinTable().getColumn() != null && 
pc.getJoinTable().getColumn().getName() != null;
-    }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java
index bb2634ea67..74c0fef098 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java
@@ -1,7 +1,7 @@
 package org.grails.orm.hibernate.cfg.domainbinding;
 
 import jakarta.annotation.Nonnull;
-import org.grails.datastore.mapping.model.PersistentProperty;
+
 import org.grails.datastore.mapping.model.types.Basic;
 import org.grails.orm.hibernate.cfg.ColumnConfig;
 import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity;
@@ -78,7 +78,7 @@ public class MapSecondPassBinder {
             if(typeName == null || typeName.equals(Object.class.getName())) {
                 typeName = StandardBasicTypes.STRING.getName();
             }
-            String columnName = getMapElementName(property, 
sessionFactoryBeanName);
+            String columnName = property.getMapElementName(namingStrategy);
             new SimpleValueColumnBinder().bindSimpleValue(elt, typeName, 
columnName, false);
 
             elt.setTypeName(typeName);
@@ -96,13 +96,4 @@ public class MapSecondPassBinder {
         }
         return null;
     }
-
-    private String getMapElementName(PersistentProperty property, String 
sessionFactoryBeanName) {
-        PropertyConfig pc = property instanceof 
GrailsHibernatePersistentProperty ghpp ? ghpp.getMappedForm() : new 
PropertyConfig();
-
-        if (collectionSecondPassBinder.hasJoinTableColumnNameMapping(pc)) {
-            return pc.getJoinTable().getColumn().getName();
-        }
-        return namingStrategy.resolveColumnName(property.getName()) + 
UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME;
-    }
 }

Reply via email to