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 eda096baa28b06659385bbc81928c8f29f9bf418
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Feb 19 07:18:40 2026 -0600

    cleanup
---
 .../secondpass/CollectionWithJoinTableBinder.java  | 33 +++++++++-------------
 .../secondpass/DependentKeyValueBinderSpec.groovy  |  1 +
 2 files changed, 15 insertions(+), 19 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java
index ff8598a2dc..b3bfa442e9 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java
@@ -78,13 +78,12 @@ public class CollectionWithJoinTableBinder {
         var joinColumnMappingOptional = 
Optional.ofNullable(property.getMappedForm()).map(PropertyConfig::getJoinTableColumnConfig);
         if (isBasicCollectionType) {
             final Class<?> referencedType = ((Basic) 
property).getComponentType();
-            String className = referencedType.getName();
             final boolean isEnum = referencedType.isEnum();
             if (joinColumnMappingOptional.isPresent()) {
                 columnName = joinColumnMappingOptional.get().getName();
             }
             else {
-                var clazz = namingStrategy.resolveColumnName(className);
+                var clazz = 
namingStrategy.resolveColumnName(referencedType.getName());
                 var prop = namingStrategy.resolveTableName(property.getName());
                 columnName = isEnum ? clazz : new 
BackticksRemover().apply(prop) + UNDERSCORE + new 
BackticksRemover().apply(clazz);
             }
@@ -105,26 +104,22 @@ public class CollectionWithJoinTableBinder {
                 }
             }
         } else {
-            final GrailsHibernatePersistentEntity domainClass = 
property.getHibernateAssociatedEntity();
+            final var domainClass = property.getHibernateAssociatedEntity();
 
-            Mapping m = null;
             if (domainClass != null) {
-                m = domainClass.getMappedForm();
-            }
-            if (m != null && m.hasCompositeIdentifier()) {
-                CompositeIdentity ci = (CompositeIdentity) m.getIdentity();
-                
compositeIdentifierToManyToOneBinder.bindCompositeIdentifierToManyToOne(property,
 element, ci, domainClass, EMPTY_PATH);
-            }
-            else {
-                if (joinColumnMappingOptional.isPresent()) {
-                    columnName = joinColumnMappingOptional.get().getName();
-                }
-                else {
-                    var decapitalize = 
domainClass.getHibernateRootEntity().getJavaClass().getSimpleName();
-                    columnName = 
namingStrategy.resolveColumnName(decapitalize) + FOREIGN_KEY_SUFFIX;
+                if (domainClass.getHibernateCompositeIdentity().isPresent()) {
+                    CompositeIdentity ci = 
domainClass.getHibernateCompositeIdentity().get();
+                    
compositeIdentifierToManyToOneBinder.bindCompositeIdentifierToManyToOne(property,
 element, ci, domainClass, EMPTY_PATH);
+                } else {
+                    if (joinColumnMappingOptional.isPresent()) {
+                        columnName = joinColumnMappingOptional.get().getName();
+                    } else {
+                        var decapitalize = 
domainClass.getHibernateRootEntity().getJavaClass().getSimpleName();
+                        columnName = 
namingStrategy.resolveColumnName(decapitalize) + FOREIGN_KEY_SUFFIX;
+                    }
+
+                    simpleValueColumnBinder.bindSimpleValue(element, "long", 
columnName, true);
                 }
-
-                simpleValueColumnBinder.bindSimpleValue(element, "long", 
columnName, true);
             }
         }
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderSpec.groovy
index c11b0231bd..2a2fe3b9d2 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/DependentKeyValueBinderSpec.groovy
@@ -4,6 +4,7 @@ import grails.gorm.annotation.Entity
 import grails.gorm.specs.HibernateGormDatastoreSpec
 import org.grails.orm.hibernate.cfg.CompositeIdentity
 import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity
+import org.grails.orm.hibernate.cfg.Mapping
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty
 import 
org.grails.orm.hibernate.cfg.domainbinding.binder.CompositeIdentifierToManyToOneBinder
 import org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueBinder

Reply via email to