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 4334492a035d3fd2a57ea86c18b296b818f9341d
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Fri Feb 6 23:00:54 2026 -0600

    progress
---
 .../orm/hibernate/cfg/GrailsDomainBinder.java      | 19 ------------
 .../cfg/GrailsHibernatePersistentProperty.java     |  9 ++++++
 .../cfg/domainbinding/CollectionBinder.java        | 34 +++++++++++++---------
 .../domainbinding/CollectionSecondPassBinder.java  |  8 +++++
 .../cfg/domainbinding/ListSecondPassBinder.java    | 12 ++++----
 .../cfg/domainbinding/MapSecondPassBinder.java     | 18 ++++--------
 .../secondpass/GrailsCollectionSecondPass.java     |  2 +-
 .../domainbinding/secondpass/ListSecondPass.java   |  9 ++++--
 .../domainbinding/secondpass/MapSecondPass.java    |  9 ++++--
 .../domainbinding/ListSecondPassBinderSpec.groovy  |  4 ++-
 .../domainbinding/MapSecondPassBinderSpec.groovy   |  4 ++-
 11 files changed, 69 insertions(+), 59 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 fb810a11dc..c8592f2b5c 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
@@ -222,27 +222,8 @@ public class GrailsDomainBinder
         NAMING_STRATEGY_PROVIDER.configureNamingStrategy(datasourceName, 
strategy);
     }
 
-    public void bindMapSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
-                                     Map<?, ?> persistentClasses, 
org.hibernate.mapping.Map map, String sessionFactoryBeanName) {
-        collectionBinder.bindMapSecondPass(property, mappings, 
persistentClasses, map, sessionFactoryBeanName);
-    }
 
-    /**
-     * @param property
-     * @param mappings
-     * @param persistentClasses
-     * @param list
-     * @param sessionFactoryBeanName
-     */
-    public void bindListSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
-                                   Map<?, ?> persistentClasses, 
org.hibernate.mapping.List list, String sessionFactoryBeanName) {
-        collectionBinder.bindListSecondPass(property, mappings, 
persistentClasses, list, sessionFactoryBeanName);
-    }
 
-    public void bindCollectionSecondPass(HibernateToManyProperty property, 
@Nonnull InFlightMetadataCollector mappings,
-                                            Map<?, ?> persistentClasses, 
Collection collection, String sessionFactoryBeanName) {
-        collectionBinder.bindCollectionSecondPass(property, mappings, 
persistentClasses, collection, sessionFactoryBeanName);
-    }
 
     /**
      * First pass to bind collection to Hibernate metamodel, sets up second 
pass
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 9686ddfffd..6b98c2926a 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
@@ -7,6 +7,7 @@ import org.grails.datastore.mapping.model.types.Embedded;
 import java.util.Optional;
 
 import org.hibernate.MappingException;
+import org.hibernate.mapping.IndexedCollection;
 import org.hibernate.usertype.UserCollectionType;
 
 /**
@@ -115,4 +116,12 @@ public interface GrailsHibernatePersistentProperty extends 
PersistentProperty<Pr
                 .map(ic -> getTypeName(ic, 
getHibernateOwner().getMappedForm()))
                 .orElse(defaultType);
     }
+
+    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;
+    }
 }
\ 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 180fcd6cf3..1687ef0417 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
@@ -3,9 +3,6 @@ package org.grails.orm.hibernate.cfg.domainbinding;
 import jakarta.annotation.Nonnull;
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.model.PersistentProperty;
-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.orm.hibernate.cfg.GrailsDomainBinder;
 import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity;
 import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentProperty;
@@ -61,9 +58,9 @@ public class CollectionBinder {
         this.metadataBuildingContext = metadataBuildingContext;
         this.grailsDomainBinder = grailsDomainBinder;
         this.namingStrategy = namingStrategy;
-        this.listSecondPassBinder = new 
ListSecondPassBinder(metadataBuildingContext, this);
         this.collectionSecondPassBinder = new 
CollectionSecondPassBinder(metadataBuildingContext, namingStrategy);
-        this.mapSecondPassBinder = new 
MapSecondPassBinder(metadataBuildingContext, namingStrategy, this);
+        this.listSecondPassBinder = new 
ListSecondPassBinder(metadataBuildingContext, collectionSecondPassBinder);
+        this.mapSecondPassBinder = new 
MapSecondPassBinder(metadataBuildingContext, namingStrategy, 
collectionSecondPassBinder);
     }
 
     /**
@@ -120,10 +117,10 @@ public class CollectionBinder {
             mappings.addSecondPass(new 
GrailsCollectionSecondPass(grailsDomainBinder, this, property, mappings, 
collection, sessionFactoryBeanName));
         }
         else if (collection instanceof org.hibernate.mapping.List) {
-            mappings.addSecondPass(new ListSecondPass(grailsDomainBinder, 
this, property, mappings, collection, sessionFactoryBeanName));
+            mappings.addSecondPass(new ListSecondPass(grailsDomainBinder, 
this, listSecondPassBinder, property, mappings, collection, 
sessionFactoryBeanName));
         }
         else if (collection instanceof org.hibernate.mapping.Map) {
-            mappings.addSecondPass(new MapSecondPass(grailsDomainBinder, this, 
property, mappings, collection, sessionFactoryBeanName));
+            mappings.addSecondPass(new MapSecondPass(grailsDomainBinder, this, 
mapSecondPassBinder, property, mappings, collection, sessionFactoryBeanName));
         }
         else { // Collection -> Bag
             mappings.addSecondPass(new 
GrailsCollectionSecondPass(grailsDomainBinder, this, property, mappings, 
collection, sessionFactoryBeanName));
@@ -187,15 +184,24 @@ public class CollectionBinder {
                 tableName, null, false, metadataBuildingContext));
     }
 
-    public String getIndexColumnName(PersistentProperty property) {
-        PropertyConfig pc = property instanceof 
GrailsHibernatePersistentProperty ghpp ? ghpp.getMappedForm() : new 
PropertyConfig();
-        if (pc.getIndexColumn() != null && pc.getIndexColumn().getColumn() != 
null) {
-            return pc.getIndexColumn().getColumn();
+
+
+    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;
         }
-        return namingStrategy.resolveColumnName(property.getName()) + 
UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME;
     }
 
-    public String getMultiTenantFilterCondition(PersistentEntity referenced) {
+    public String 
getMultiTenantFilterCondition(GrailsHibernatePersistentEntity referenced) {
         return 
collectionSecondPassBinder.getMultiTenantFilterCondition(referenced);
     }
-}
+
+
+}
\ No newline at end of file
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 9d3268c7cf..bbe589b0ba 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
@@ -42,6 +42,10 @@ public class CollectionSecondPassBinder {
         this.namingStrategy = namingStrategy;
     }
 
+    public PersistentEntityNamingStrategy getNamingStrategy() {
+        return namingStrategy;
+    }
+
     public void bindCollectionSecondPass(HibernateToManyProperty property, 
@Nonnull InFlightMetadataCollector mappings,
                                          java.util.Map<?, ?> 
persistentClasses, Collection collection, String sessionFactoryBeanName) {
         PersistentClass associatedClass = null;
@@ -573,4 +577,8 @@ public class CollectionSecondPassBinder {
             return null;
         }
     }
+
+    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/ListSecondPassBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinder.java
index 08627e1410..f5e3aa3c21 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinder.java
@@ -30,19 +30,17 @@ import static 
org.grails.orm.hibernate.cfg.GrailsDomainBinder.UNDERSCORE;
 public class ListSecondPassBinder {
 
     private final MetadataBuildingContext metadataBuildingContext;
-    private final CollectionBinder collectionBinder;
+    private final CollectionSecondPassBinder collectionSecondPassBinder;
 
-    public ListSecondPassBinder(MetadataBuildingContext 
metadataBuildingContext, CollectionBinder collectionBinder) {
+    public ListSecondPassBinder(MetadataBuildingContext 
metadataBuildingContext, CollectionSecondPassBinder collectionSecondPassBinder) 
{
         this.metadataBuildingContext = metadataBuildingContext;
-        this.collectionBinder = collectionBinder;
+        this.collectionSecondPassBinder = collectionSecondPassBinder;
     }
 
     public void bindListSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
                                    Map<?, ?> persistentClasses, 
org.hibernate.mapping.List list, String sessionFactoryBeanName) {
 
-        collectionBinder.bindCollectionSecondPass(property, mappings, 
persistentClasses, list, sessionFactoryBeanName);
-
-        String columnName = collectionBinder.getIndexColumnName(property);
+        String columnName = 
property.getIndexColumnName(collectionSecondPassBinder.getNamingStrategy());
         final boolean isManyToMany = property instanceof ManyToMany;
 
         if (isManyToMany && !property.isOwningSide()) {
@@ -115,4 +113,4 @@ public class ListSecondPassBinder {
             }
         }
     }
-}
+}
\ No newline at end of file
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 bf240de17a..bb2634ea67 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
@@ -30,22 +30,20 @@ import static 
org.grails.orm.hibernate.cfg.GrailsDomainBinder.UNDERSCORE;
 public class MapSecondPassBinder {
     private final MetadataBuildingContext metadataBuildingContext;
     private final PersistentEntityNamingStrategy namingStrategy;
-    private final CollectionBinder collectionBinder;
+    private final CollectionSecondPassBinder collectionSecondPassBinder;
 
-    public MapSecondPassBinder(MetadataBuildingContext 
metadataBuildingContext, PersistentEntityNamingStrategy namingStrategy, 
CollectionBinder collectionBinder) {
+    public MapSecondPassBinder(MetadataBuildingContext 
metadataBuildingContext, PersistentEntityNamingStrategy namingStrategy, 
CollectionSecondPassBinder collectionSecondPassBinder) {
         this.metadataBuildingContext = metadataBuildingContext;
         this.namingStrategy = namingStrategy;
-        this.collectionBinder = collectionBinder;
+        this.collectionSecondPassBinder = collectionSecondPassBinder;
     }
 
     public void bindMapSecondPass(HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
                                   Map<?, ?> persistentClasses, 
org.hibernate.mapping.Map map, String sessionFactoryBeanName) {
-        collectionBinder.bindCollectionSecondPass(property, mappings, 
persistentClasses, map, sessionFactoryBeanName);
-
         SimpleValue value = new BasicValue(metadataBuildingContext, 
map.getCollectionTable());
 
         String type = ((GrailsHibernatePersistentProperty) 
property).getIndexColumnType("string");
-        String columnName1 = collectionBinder.getIndexColumnName(property);
+        String columnName1 = property.getIndexColumnName(namingStrategy);
         new SimpleValueColumnBinder().bindSimpleValue(value, type, 
columnName1, true);
         PropertyConfig mappedForm = property.getMappedForm();
         if (mappedForm.getIndexColumn() != null) {
@@ -102,13 +100,9 @@ public class MapSecondPassBinder {
     private String getMapElementName(PersistentProperty property, String 
sessionFactoryBeanName) {
         PropertyConfig pc = property instanceof 
GrailsHibernatePersistentProperty ghpp ? ghpp.getMappedForm() : new 
PropertyConfig();
 
-        if (hasJoinTableColumnNameMapping(pc)) {
+        if (collectionSecondPassBinder.hasJoinTableColumnNameMapping(pc)) {
             return pc.getJoinTable().getColumn().getName();
         }
         return namingStrategy.resolveColumnName(property.getName()) + 
UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME;
     }
-
-    private boolean hasJoinTableColumnNameMapping(PropertyConfig pc) {
-        return pc != null && pc.getJoinTable() != null && 
pc.getJoinTable().getColumn() != null && 
pc.getJoinTable().getColumn().getName() != null;
-    }
-}
\ No newline at end of file
+}
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/GrailsCollectionSecondPass.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/GrailsCollectionSecondPass.java
index f092d07abf..ad3c79b427 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/GrailsCollectionSecondPass.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/GrailsCollectionSecondPass.java
@@ -52,7 +52,7 @@ public class GrailsCollectionSecondPass implements 
org.hibernate.boot.spi.Second
 
 
 
-    private void createCollectionKeys() {
+    protected void createCollectionKeys() {
         collection.createAllKeys();
 
         if (GrailsDomainBinder.LOG.isDebugEnabled()) {
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java
index 991098b224..39fe7708cd 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPass.java
@@ -11,21 +11,26 @@ import org.hibernate.mapping.Collection;
 import org.grails.orm.hibernate.cfg.GrailsDomainBinder;
 import org.grails.orm.hibernate.cfg.HibernateToManyProperty;
 import org.grails.orm.hibernate.cfg.domainbinding.CollectionBinder;
+import org.grails.orm.hibernate.cfg.domainbinding.ListSecondPassBinder;
 
 public class ListSecondPass extends GrailsCollectionSecondPass {
     private static final long serialVersionUID = -3024674993774205193L;
 
+    private final ListSecondPassBinder listSecondPassBinder;
 
-    public ListSecondPass(GrailsDomainBinder grailsDomainBinder, 
CollectionBinder collectionBinder, HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
+    public ListSecondPass(GrailsDomainBinder grailsDomainBinder, 
CollectionBinder collectionBinder, ListSecondPassBinder listSecondPassBinder, 
HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings,
                           Collection coll, String sessionFactoryBeanName) {
         super(grailsDomainBinder, collectionBinder, property, mappings, coll, 
sessionFactoryBeanName);
+        this.listSecondPassBinder = listSecondPassBinder;
     }
 
 
     @SuppressWarnings("rawtypes")
     @Override
     public void doSecondPass(Map persistentClasses) throws MappingException {
-        collectionBinder.bindListSecondPass(property, mappings, 
persistentClasses,
+        collectionBinder.bindCollectionSecondPass(property, mappings, 
persistentClasses, collection, sessionFactoryBeanName);
+        listSecondPassBinder.bindListSecondPass(property, mappings, 
persistentClasses,
                 (org.hibernate.mapping.List) collection, 
sessionFactoryBeanName);
+        createCollectionKeys();
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java
index 49a5f5ecc0..d7d692be53 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPass.java
@@ -11,14 +11,17 @@ import org.hibernate.mapping.Collection;
 import org.grails.orm.hibernate.cfg.GrailsDomainBinder;
 import org.grails.orm.hibernate.cfg.HibernateToManyProperty;
 import org.grails.orm.hibernate.cfg.domainbinding.CollectionBinder;
+import org.grails.orm.hibernate.cfg.domainbinding.MapSecondPassBinder;
 
 public class MapSecondPass extends GrailsCollectionSecondPass {
     private static final long serialVersionUID = -3244991685626409031L;
 
+    private final MapSecondPassBinder mapSecondPassBinder;
 
-    public MapSecondPass(GrailsDomainBinder grailsDomainBinder, 
CollectionBinder collectionBinder, HibernateToManyProperty property, @Nonnull 
InFlightMetadataCollector mappings,
+    public MapSecondPass(GrailsDomainBinder grailsDomainBinder, 
CollectionBinder collectionBinder, MapSecondPassBinder mapSecondPassBinder, 
HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings,
                          Collection coll, String sessionFactoryBeanName) {
         super(grailsDomainBinder, collectionBinder, property, mappings, coll, 
sessionFactoryBeanName);
+        this.mapSecondPassBinder = mapSecondPassBinder;
     }
 
 
@@ -26,7 +29,9 @@ public class MapSecondPass extends GrailsCollectionSecondPass 
{
     @SuppressWarnings("rawtypes")
     @Override
     public void doSecondPass(Map persistentClasses) throws MappingException {
-        collectionBinder.bindMapSecondPass(property, mappings, 
persistentClasses,
+        collectionBinder.bindCollectionSecondPass(property, mappings, 
persistentClasses, collection, sessionFactoryBeanName);
+        mapSecondPassBinder.bindMapSecondPass(property, mappings, 
persistentClasses,
                 (org.hibernate.mapping.Map) collection, 
sessionFactoryBeanName);
+        createCollectionKeys();
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy
index 8f872682d4..d1ab83a687 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ListSecondPassBinderSpec.groovy
@@ -22,7 +22,8 @@ class ListSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         def collector = getCollector()
         def binder = getGrailsDomainBinder()
         def collectionBinder = binder.getCollectionBinder()
-        def listSecondPassBinder = new 
ListSecondPassBinder(binder.getMetadataBuildingContext(), collectionBinder)
+        def collectionSecondPassBinder = new 
CollectionSecondPassBinder(binder.getMetadataBuildingContext(), 
binder.getNamingStrategy())
+        def listSecondPassBinder = new 
ListSecondPassBinder(binder.getMetadataBuildingContext(), 
collectionSecondPassBinder)
 
         def authorEntity = getPersistentEntity(ListBinderAuthor) as 
GrailsHibernatePersistentEntity
         def bookEntity = getPersistentEntity(ListBinderBook) as 
GrailsHibernatePersistentEntity
@@ -58,6 +59,7 @@ class ListSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         ]
 
         when:
+        collectionSecondPassBinder.bindCollectionSecondPass(booksProp, 
collector, persistentClasses, list, "sessionFactory")
         listSecondPassBinder.bindListSecondPass(booksProp, collector, 
persistentClasses, list, "sessionFactory")
         collector.processSecondPasses(binder.getMetadataBuildingContext())
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy
index 0999fa20fe..f3b0fedaaf 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinderSpec.groovy
@@ -22,7 +22,8 @@ class MapSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         def collector = getCollector()
         def binder = getGrailsDomainBinder()
         def collectionBinder = binder.getCollectionBinder()
-        def mapSecondPassBinder = new 
MapSecondPassBinder(binder.getMetadataBuildingContext(), 
binder.getNamingStrategy(), collectionBinder)
+        def collectionSecondPassBinder = new 
CollectionSecondPassBinder(binder.getMetadataBuildingContext(), 
binder.getNamingStrategy())
+        def mapSecondPassBinder = new 
MapSecondPassBinder(binder.getMetadataBuildingContext(), 
binder.getNamingStrategy(), collectionSecondPassBinder)
 
         def authorEntity = getPersistentEntity(MapAuthorBinder) as 
GrailsHibernatePersistentEntity
         def bookEntity = getPersistentEntity(MapBookBinder) as 
GrailsHibernatePersistentEntity
@@ -58,6 +59,7 @@ class MapSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         ]
 
         when:
+        collectionSecondPassBinder.bindCollectionSecondPass(booksProp, 
collector, persistentClasses, map, "sessionFactory")
         mapSecondPassBinder.bindMapSecondPass(booksProp, collector, 
persistentClasses, map, "sessionFactory")
         collector.processSecondPasses(binder.getMetadataBuildingContext())
 

Reply via email to