This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit d345b2f3a5bacacece6abb98fdede9fff50707f3
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Thu Mar 12 21:48:47 2026 -0500

    hibernate 7:  refactoring RootBinder
---
 .../domainbinding/binder/GrailsDomainBinder.java   |  5 +++--
 .../cfg/domainbinding/binder/RootBinder.java       | 23 +++++++++++++++++++---
 .../RootPersistentClassCommonValuesBinder.java     |  3 ++-
 .../cfg/domainbinding/binder/SubClassBinder.java   |  6 +-----
 .../util/MultiTenantFilterBinder.java              |  1 -
 .../cfg/domainbinding/CollectionBinderSpec.groovy  |  7 ++++---
 .../domainbinding/GrailsPropertyBinderSpec.groovy  |  4 ++--
 .../cfg/domainbinding/binder/RootBinderSpec.groovy | 12 +++++++----
 .../domainbinding/binder/SubClassBinderSpec.groovy |  6 +-----
 .../secondpass/ListSecondPassBinderSpec.groovy     |  4 ++--
 .../secondpass/MapSecondPassBinderSpec.groovy      |  4 ++--
 11 files changed, 45 insertions(+), 30 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
index fd075a71bc..55ec7a0b33 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsDomainBinder.java
@@ -198,7 +198,7 @@ public class GrailsDomainBinder implements 
AdditionalMappingContributor, TypeCon
         SubclassMappingBinder subclassMappingBinder = new 
SubclassMappingBinder(
                 joinedSubClassBinder, unionSubclassBinder, 
singleTableSubclassBinder, classPropertiesBinder);
         SubClassBinder subClassBinder =
-                new SubClassBinder(mappingCacheHolder, subclassMappingBinder, 
multiTenantFilterBinder, dataSourceName);
+                new SubClassBinder( subclassMappingBinder, 
multiTenantFilterBinder, dataSourceName);
         RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder =
                 new RootPersistentClassCommonValuesBinder(
                         metadataBuildingContext,
@@ -219,7 +219,8 @@ public class GrailsDomainBinder implements 
AdditionalMappingContributor, TypeCon
                 subClassBinder,
                 rootPersistentClassCommonValuesBinder,
                 discriminatorPropertyBinder,
-                metadataCollector);
+                metadataCollector,
+                mappingCacheHolder);
 
         hibernateMappingContext.getHibernatePersistentEntities(dataSourceName)
                 .stream()
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java
index 4ebc00b374..27221cdece 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinder.java
@@ -19,14 +19,19 @@
 package org.grails.orm.hibernate.cfg.domainbinding.binder;
 
 import java.util.Collection;
+import java.util.List;
+import java.util.stream.Stream;
 
 import jakarta.annotation.Nonnull;
 
+import org.checkerframework.checker.nullness.qual.NonNull;
 import org.hibernate.boot.spi.InFlightMetadataCollector;
 import org.hibernate.mapping.RootClass;
+import org.hibernate.mapping.Subclass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import org.grails.orm.hibernate.cfg.MappingCacheHolder;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentEntity;
 import org.grails.orm.hibernate.cfg.domainbinding.util.MultiTenantFilterBinder;
@@ -43,6 +48,7 @@ public class RootBinder {
     private final RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder;
     private final DiscriminatorPropertyBinder discriminatorPropertyBinder;
     private final InFlightMetadataCollector mappings;
+    private final MappingCacheHolder mappingCacheHolder;
 
     public RootBinder(
             String dataSourceName,
@@ -50,13 +56,14 @@ public class RootBinder {
             SubClassBinder subClassBinder,
             RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder,
             DiscriminatorPropertyBinder discriminatorPropertyBinder,
-            InFlightMetadataCollector mappings) {
+            InFlightMetadataCollector mappings, MappingCacheHolder 
mappingCacheHolder) {
         this.dataSourceName = dataSourceName;
         this.multiTenantFilterBinder = multiTenantFilterBinder;
         this.subClassBinder = subClassBinder;
         this.rootPersistentClassCommonValuesBinder = 
rootPersistentClassCommonValuesBinder;
         this.discriminatorPropertyBinder = discriminatorPropertyBinder;
         this.mappings = mappings;
+        this.mappingCacheHolder = mappingCacheHolder;
     }
 
     /**
@@ -80,11 +87,21 @@ public class RootBinder {
 
         // bind the sub classes
         children.stream()
-                .flatMap(sub -> subClassBinder.bindSubClass(sub, 
root).stream())
-                .forEach(mappings::addEntityBinding);
+                .flatMap(sub -> getSubclassStream(sub, root))
+                .forEach(subClass -> addSubclass(subClass, root));
 
         multiTenantFilterBinder.bind(entity, root);
 
         mappings.addEntityBinding(root);
     }
+
+    private void addSubclass(Subclass subClass, RootClass root) {
+        root.addSubclass(subClass);
+        mappings.addEntityBinding(subClass);
+    }
+
+    private @NonNull Stream<Subclass> 
getSubclassStream(HibernatePersistentEntity entity, RootClass root) {
+        mappingCacheHolder.cacheMapping(entity);
+        return subClassBinder.bindSubClass(entity, root).stream();
+    }
 }
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
index bab7999c2b..d929459d96 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
@@ -30,6 +30,7 @@ import org.grails.orm.hibernate.cfg.CacheConfig;
 import org.grails.orm.hibernate.cfg.Mapping;
 import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
+import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentEntity;
 
 public class RootPersistentClassCommonValuesBinder {
     public static final Logger LOG = 
LoggerFactory.getLogger(RootPersistentClassCommonValuesBinder.class);
@@ -59,7 +60,7 @@ public class RootPersistentClassCommonValuesBinder {
         this.mappings = mappings;
     }
 
-    public RootClass bindRoot(@Nonnull GrailsHibernatePersistentEntity 
domainClass) {
+    public RootClass bindRoot(@Nonnull HibernatePersistentEntity domainClass) {
 
         RootClass root = new RootClass(this.metadataBuildingContext);
         classBinder.bindClass(domainClass, root);
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java
index 609b1b37e4..ec7cc31f39 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinder.java
@@ -37,17 +37,14 @@ import 
org.grails.orm.hibernate.cfg.domainbinding.util.MultiTenantFilterBinder;
 /** Binder for subclasses. */
 public class SubClassBinder {
 
-    private final MappingCacheHolder mappingCacheHolder;
     private final SubclassMappingBinder subclassMappingBinder;
     private final MultiTenantFilterBinder multiTenantFilterBinder;
     private final String dataSourceName;
 
     public SubClassBinder(
-            MappingCacheHolder mappingCacheHolder,
             SubclassMappingBinder subclassMappingBinder,
             MultiTenantFilterBinder multiTenantFilterBinder,
             String dataSourceName) {
-        this.mappingCacheHolder = mappingCacheHolder;
         this.subclassMappingBinder = subclassMappingBinder;
         this.multiTenantFilterBinder = multiTenantFilterBinder;
         this.dataSourceName = dataSourceName;
@@ -61,9 +58,8 @@ public class SubClassBinder {
      * @return The list of subclasses created
      */
     public List<Subclass> bindSubClass(@Nonnull HibernatePersistentEntity sub, 
PersistentClass parent) {
-        mappingCacheHolder.cacheMapping(sub);
         Subclass subClass = subclassMappingBinder.createSubclassMapping(sub, 
parent);
-        parent.addSubclass(subClass);
+        sub.setPersistentClass(subClass);
         bindMultiTenantFilter(sub, subClass);
         List<Subclass> subclasses = new ArrayList<>();
         subclasses.add(subClass);
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinder.java
index 78c2ec5d8f..373e170a51 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/MultiTenantFilterBinder.java
@@ -35,7 +35,6 @@ import org.hibernate.mapping.SingleTableSubclass;
 import org.hibernate.mapping.UnionSubclass;
 
 import org.grails.datastore.mapping.model.config.GormProperties;
-import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentEntity;
 import 
org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty;
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
index f27da1b589..4559ff1323 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinderSpec.groovy
@@ -14,6 +14,7 @@ import 
org.grails.orm.hibernate.cfg.domainbinding.binder.ForeignKeyOneToOneBinde
 import org.grails.orm.hibernate.cfg.domainbinding.binder.ManyToOneBinder
 import org.grails.orm.hibernate.cfg.domainbinding.binder.ManyToOneValuesBinder
 import 
org.grails.orm.hibernate.cfg.domainbinding.binder.CompositeIdentifierToManyToOneBinder
+import 
org.grails.orm.hibernate.cfg.domainbinding.util.ForeignKeyColumnCountCalculator
 import org.grails.orm.hibernate.cfg.domainbinding.util.SimpleValueColumnFetcher
 import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionBinder
 import org.grails.orm.hibernate.cfg.domainbinding.binder.ClassBinder
@@ -65,7 +66,7 @@ class CollectionBinderSpec extends HibernateGormDatastoreSpec 
{
         SimpleValueColumnFetcher simpleValueColumnFetcher = new 
SimpleValueColumnFetcher()
         CompositeIdentifierToManyToOneBinder 
compositeIdentifierToManyToOneBinder = new CompositeIdentifierToManyToOneBinder(
 
-                new 
org.grails.orm.hibernate.cfg.domainbinding.util.ForeignKeyColumnCountCalculator(),
+                new ForeignKeyColumnCountCalculator(),
                 namingStrategy,
                 defaultColumnNameFetcher,
                 backticksRemover,
@@ -123,10 +124,10 @@ class CollectionBinderSpec extends 
HibernateGormDatastoreSpec {
         SingleTableSubclassBinder singleTableSubclassBinder = new 
SingleTableSubclassBinder(classBinder, metadataBuildingContext)
 
         SubclassMappingBinder subclassMappingBinder = new 
SubclassMappingBinder(joinedSubClassBinder, unionSubclassBinder, 
singleTableSubclassBinder, classPropertiesBinder)
-        SubClassBinder subClassBinder = new 
SubClassBinder(binder.getMappingCacheHolder(), subclassMappingBinder, 
multiTenantFilterBinder, "dataSource")
+        SubClassBinder subClassBinder = new 
SubClassBinder(subclassMappingBinder, multiTenantFilterBinder, "dataSource")
         RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder = new 
RootPersistentClassCommonValuesBinder(metadataBuildingContext, namingStrategy, 
identityBinder, versionBinder, classBinder, classPropertiesBinder, 
getCollector())
         DiscriminatorPropertyBinder discriminatorPropertyBinder = new 
DiscriminatorPropertyBinder(metadataBuildingContext, 
binder.getMappingCacheHolder(), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.ConfiguredDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder(), 
new ColumnConfigToColumnBinder()), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.DefaultDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.Si [...]
-        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, getCollector())
+        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, getCollector(), binder.getMappingCacheHolder())
 
         return [
             propertyBinder: propertyBinder,
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 83fe0f3cee..91f589b2cd 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
@@ -189,10 +189,10 @@ class GrailsPropertyBinderSpec extends 
HibernateGormDatastoreSpec {
         SingleTableSubclassBinder singleTableSubclassBinder = new 
SingleTableSubclassBinder(classBinder, metadataBuildingContext)
 
         SubclassMappingBinder subclassMappingBinder = new 
SubclassMappingBinder(joinedSubClassBinder, unionSubclassBinder, 
singleTableSubclassBinder, classPropertiesBinder)
-        SubClassBinder subClassBinder = new 
SubClassBinder(binder.getMappingCacheHolder(), subclassMappingBinder, 
multiTenantFilterBinder, "dataSource")
+        SubClassBinder subClassBinder = new 
SubClassBinder(subclassMappingBinder, multiTenantFilterBinder, "dataSource")
         RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder = new 
RootPersistentClassCommonValuesBinder(metadataBuildingContext, namingStrategy, 
identityBinder, versionBinder, classBinder, classPropertiesBinder, collector)
         DiscriminatorPropertyBinder discriminatorPropertyBinder = new 
DiscriminatorPropertyBinder(metadataBuildingContext, 
binder.getMappingCacheHolder(), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.ConfiguredDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder(), 
new ColumnConfigToColumnBinder()), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.DefaultDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.Si [...]
-        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, collector)
+        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, collector, binder.getMappingCacheHolder())
 
         return [
             propertyBinder: propertyBinder,
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy
index d5753dead0..67ca347eb1 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootBinderSpec.groovy
@@ -19,25 +19,28 @@ class RootBinderSpec extends HibernateGormDatastoreSpec {
     MetadataBuildingContext metadataBuildingContext
     PersistentEntityNamingStrategy namingStrategy
     def sharedCollector
+    org.grails.orm.hibernate.cfg.MappingCacheHolder mappingCacheHolder
 
     void setup() {
         def gdb = getGrailsDomainBinder()
         metadataBuildingContext = gdb.getMetadataBuildingContext()
         namingStrategy = gdb.getNamingStrategy()
         sharedCollector = getCollector()
-        
+        mappingCacheHolder = 
Mock(org.grails.orm.hibernate.cfg.MappingCacheHolder)
+
         multiTenantFilterBinder = Mock(MultiTenantFilterBinder)
         subClassBinder = Mock(SubClassBinder)
         rootPersistentClassCommonValuesBinder = 
Mock(RootPersistentClassCommonValuesBinder)
         discriminatorPropertyBinder = Mock(DiscriminatorPropertyBinder)
-        
+
         binder = new RootBinder(
                 "default",
                 multiTenantFilterBinder,
                 subClassBinder,
                 rootPersistentClassCommonValuesBinder,
                 discriminatorPropertyBinder,
-                sharedCollector
+                sharedCollector,
+                mappingCacheHolder
         )
     }
 
@@ -85,6 +88,7 @@ class RootBinderSpec extends HibernateGormDatastoreSpec {
 
         then:
         1 * rootPersistentClassCommonValuesBinder.bindRoot(entity) >> rootClass
+        1 * mappingCacheHolder.cacheMapping(childEntity)
         1 * discriminatorPropertyBinder.bindDiscriminatorProperty(rootClass)
         1 * subClassBinder.bindSubClass(childEntity, rootClass) >> []
         1 * multiTenantFilterBinder.bind(entity, rootClass)
@@ -105,6 +109,6 @@ class RootBinderSpec extends HibernateGormDatastoreSpec {
         binder.bindRoot(entity)
 
         then:
-        0 * rootPersistentClassCommonValuesBinder.bindRoot(_, _)
+        0 * rootPersistentClassCommonValuesBinder.bindRoot(_)
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinderSpec.groovy
index b425102b7d..e0cb85da01 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubClassBinderSpec.groovy
@@ -27,7 +27,6 @@ class SubClassBinderSpec extends HibernateGormDatastoreSpec {
         multiTenantFilterBinder = Mock(MultiTenantFilterBinder)
         
         binder = new SubClassBinder(
-                mappingCacheHolder,
                 subclassMappingBinder,
                 multiTenantFilterBinder,
                 "default"
@@ -52,7 +51,6 @@ class SubClassBinderSpec extends HibernateGormDatastoreSpec {
         then:
         1 * subclassMappingBinder.createSubclassMapping(subEntity, rootClass) 
>> subClass
         1 * multiTenantFilterBinder.bind(subEntity, subClass)
-        rootClass.getSubclasses().contains(subClass)
         results == [subClass]
     }
 
@@ -68,7 +66,7 @@ class SubClassBinderSpec extends HibernateGormDatastoreSpec {
         def rootClass = new RootClass(metadataBuildingContext)
         rootClass.setEntityName("Parent")
         rootClass.setJpaEntityName("Parent")
-        
+
         def subClass = new 
org.hibernate.mapping.SingleTableSubclass(rootClass, metadataBuildingContext)
         subClass.setEntityName("Child")
         subClass.setJpaEntityName("Child")
@@ -83,8 +81,6 @@ class SubClassBinderSpec extends HibernateGormDatastoreSpec {
         1 * subclassMappingBinder.createSubclassMapping(subEntity, rootClass) 
>> subClass
         1 * subclassMappingBinder.createSubclassMapping(grandChildEntity, 
subClass) >> grandChildSubClass
         2 * multiTenantFilterBinder.bind(_, _)
-        rootClass.getSubclasses().contains(subClass)
-        subClass.getSubclasses().contains(grandChildSubClass)
         results == [subClass, grandChildSubClass]
     }
 }
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
index 2ac277a0e1..bfbf04d353 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/ListSecondPassBinderSpec.groovy
@@ -125,10 +125,10 @@ class ListSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         SingleTableSubclassBinder singleTableSubclassBinder = new 
SingleTableSubclassBinder(classBinder, metadataBuildingContext)
 
         SubclassMappingBinder subclassMappingBinder = new 
SubclassMappingBinder(joinedSubClassBinder, unionSubclassBinder, 
singleTableSubclassBinder, classPropertiesBinder)
-        SubClassBinder subClassBinder = new 
SubClassBinder(binder.getMappingCacheHolder(), subclassMappingBinder, 
multiTenantFilterBinder, "dataSource")
+        SubClassBinder subClassBinder = new 
SubClassBinder(subclassMappingBinder, multiTenantFilterBinder, "dataSource")
         RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder = new 
RootPersistentClassCommonValuesBinder(metadataBuildingContext, namingStrategy, 
identityBinder, versionBinder, classBinder, classPropertiesBinder, collector)
         DiscriminatorPropertyBinder discriminatorPropertyBinder = new 
DiscriminatorPropertyBinder(metadataBuildingContext, 
binder.getMappingCacheHolder(), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.ConfiguredDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder(), 
new ColumnConfigToColumnBinder()), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.DefaultDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.Si [...]
-        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, collector)
+        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, collector, binder.getMappingCacheHolder())
 
         return [
             propertyBinder: propertyBinder,
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
index 9f1f85697e..63fc272fa5 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/MapSecondPassBinderSpec.groovy
@@ -123,10 +123,10 @@ class MapSecondPassBinderSpec extends 
HibernateGormDatastoreSpec {
         SingleTableSubclassBinder singleTableSubclassBinder = new 
SingleTableSubclassBinder(classBinder, metadataBuildingContext)
 
         SubclassMappingBinder subclassMappingBinder = new 
SubclassMappingBinder(joinedSubClassBinder, unionSubclassBinder, 
singleTableSubclassBinder, classPropertiesBinder)
-        SubClassBinder subClassBinder = new 
SubClassBinder(binder.getMappingCacheHolder(), subclassMappingBinder, 
multiTenantFilterBinder, "dataSource")
+        SubClassBinder subClassBinder = new 
SubClassBinder(subclassMappingBinder, multiTenantFilterBinder, "dataSource")
         RootPersistentClassCommonValuesBinder 
rootPersistentClassCommonValuesBinder = new 
RootPersistentClassCommonValuesBinder(metadataBuildingContext, namingStrategy, 
identityBinder, versionBinder, classBinder, classPropertiesBinder, 
getCollector())
         DiscriminatorPropertyBinder discriminatorPropertyBinder = new 
DiscriminatorPropertyBinder(metadataBuildingContext, 
binder.getMappingCacheHolder(), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.ConfiguredDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder(), 
new ColumnConfigToColumnBinder()), new 
org.grails.orm.hibernate.cfg.domainbinding.binder.DefaultDiscriminatorBinder(new
 org.grails.orm.hibernate.cfg.domainbinding.binder.Si [...]
-        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, getCollector())
+        RootBinder rootBinder = new RootBinder("default", 
multiTenantFilterBinder, subClassBinder, rootPersistentClassCommonValuesBinder, 
discriminatorPropertyBinder, getCollector(), binder.getMappingCacheHolder())
 
         return [
             propertyBinder: propertyBinder,

Reply via email to