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 7600f5d1338fd6d72ce998f2f0c78b966da43631
Author: Walter B Duque de Estrada <[email protected]>
AuthorDate: Mon Jan 26 16:59:32 2026 -0600

    cleanup
---
 grails-data-hibernate7/core/01.txt                 | 11 ++++++++
 grails-data-hibernate7/core/02.txt                 | 10 +++++++
 grails-data-hibernate7/core/HIBERNATE7-TESTS.csv   |  9 ------
 .../orm/hibernate/cfg/GrailsDomainBinder.java      | 32 ++++------------------
 .../cfg/GrailsHibernatePersistentEntity.java       | 15 ++++++++++
 5 files changed, 41 insertions(+), 36 deletions(-)

diff --git a/grails-data-hibernate7/core/01.txt 
b/grails-data-hibernate7/core/01.txt
new file mode 100644
index 0000000000..8ecab2edc3
--- /dev/null
+++ b/grails-data-hibernate7/core/01.txt
@@ -0,0 +1,11 @@
+AttachMethodSpec. Test attach method
+BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec. test unique 
constraint for the associated child object
+BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec. test unique 
constraint on root instance
+CascadeBehaviorFetcherSpec. test cascade behavior fetcher for embedded 
association
+CascadeBehaviorFetcherSpec. test cascade behavior fetcher for uni: String
+DirtyCheckingSpec. test relationships not marked dirty when domain objects are 
used
+JoinPerfSpec. test read performance with join query
+QueryEventsSpec. post-events are fired after queries are run
+QueryEventsSpec. pre-events are fired before queries are run
+SessionCreationEventSpec. test event for new session
+
diff --git a/grails-data-hibernate7/core/02.txt 
b/grails-data-hibernate7/core/02.txt
new file mode 100644
index 0000000000..18ce578abd
--- /dev/null
+++ b/grails-data-hibernate7/core/02.txt
@@ -0,0 +1,10 @@
+AttachMethodSpec. Test attach method
+BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec. test unique 
constraint for the associated child object
+BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec. test unique 
constraint on root instance
+CascadeBehaviorFetcherSpec. test cascade behavior fetcher for embedded 
association
+CascadeBehaviorFetcherSpec. test cascade behavior fetcher for uni: String
+DirtyCheckingSpec. test relationships not marked dirty when domain objects are 
used
+JoinPerfSpec. test read performance with join query
+QueryEventsSpec. post-events are fired after queries are run
+QueryEventsSpec. pre-events are fired before queries are run
+SessionCreationEventSpec. test event for new session
\ No newline at end of file
diff --git a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv 
b/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv
deleted file mode 100644
index 1ae5079d70..0000000000
--- a/grails-data-hibernate7/core/HIBERNATE7-TESTS.csv
+++ /dev/null
@@ -1,9 +0,0 @@
-Test File , Status , Notes
-`src/test/groovy/grails/gorm/specs/perf/JoinPerfSpec.groovy` , FAILED ,
-`TCK: org.apache.grails.data.testing.tck.tests.AttachMethodSpec` , FAILED ,
-`TCK: 
org.apache.grails.data.testing.tck.tests.BuiltinUniqueConstraintWorksWithTargetProxiesConstraintsSpec`
 , FAILED , 
-`TCK: org.apache.grails.data.testing.tck.tests.GroovyProxySpec` , SKIPPED , 
Requires fix in GORM Hibernate 7 implementation for proxy initialization 
(isInitialized method) for native proxies.
-`TCK: org.apache.grails.data.testing.tck.tests.QueryEventsSpec` , FAILED , 
-`TCK: org.apache.grails.data.testing.tck.tests.SessionCreationEventSpec` , 
FAILED , 
-`TCK: org.apache.grails.data.testing.tck.tests.UpdateWithProxyPresentSpec` , 
NOT SUPPORTED , Not supported in Hibernate 7.
-`TCK: org.apache.grails.data.testing.tck.tests.NamedQuerySpec` , NOT SUPPORTED 
, Not supported in Hibernate 7.
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 8f7a4af37f..519719eb6d 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
@@ -1124,6 +1124,7 @@ public class GrailsDomainBinder
             if (entity != null) {
                 m = entity.getMappedForm();
             }
+            final Mapping finalMapping = m;
             boolean tablePerSubclass = !m.getTablePerHierarchy();
             if (!tablePerSubclass) {
                 // if the root class has children create a discriminator 
property
@@ -1131,7 +1132,8 @@ public class GrailsDomainBinder
                 bindDiscriminatorProperty(root.getTable(), root, m);
             }
             // bind the sub classes
-            bindSubClasses(entity, root, mappings, sessionFactoryBeanName, m);
+            entity.getChildEntities(dataSourceName)
+                    .forEach(sub -> bindSubClass(sub, root, mappings, 
sessionFactoryBeanName, finalMapping));
         }
 
         addMultiTenantFilterIfNecessary(entity, root, mappings, 
sessionFactoryBeanName);
@@ -1187,31 +1189,6 @@ public class GrailsDomainBinder
         }
     }
 
-    /**
-     * Binds the sub classes of a root class using table-per-heirarchy 
inheritance mapping
-     *
-     * @param domainClass            The root domain class to bind
-     * @param parent                 The parent class instance
-     * @param mappings               The mappings instance
-     * @param sessionFactoryBeanName the session factory bean name
-     * @param m
-     */
-    private void bindSubClasses(GrailsHibernatePersistentEntity domainClass, 
PersistentClass parent,
-                                InFlightMetadataCollector mappings, String 
sessionFactoryBeanName, Mapping m) {
-        domainClass.getMappingContext()
-                .getDirectChildEntities(domainClass)
-                .stream()
-                .filter(GrailsHibernatePersistentEntity.class::isInstance)
-                .map(GrailsHibernatePersistentEntity.class::cast)
-                .filter(persistentEntity -> 
persistentEntity.usesConnectionSource(dataSourceName))
-                .filter(sub -> isChildEntity(sub, domainClass))
-                .forEach( sub -> bindSubClass(sub, parent, mappings, 
sessionFactoryBeanName, m));
-
-    }
-
-    private boolean isChildEntity(GrailsHibernatePersistentEntity sub, 
GrailsHibernatePersistentEntity parent) {
-        return 
sub.getJavaClass().getSuperclass().equals(parent.getJavaClass());
-    }
 
     /**
      * Binds a sub class.
@@ -1285,7 +1262,8 @@ public class GrailsDomainBinder
         final java.util.Collection<PersistentEntity> childEntities = 
sub.getMappingContext().getDirectChildEntities(sub);
         if (!childEntities.isEmpty()) {
             // bind the sub classes
-            bindSubClasses(sub, subClass, mappings, sessionFactoryBeanName, m);
+            sub.getChildEntities(dataSourceName)
+                    .forEach(sub1 -> bindSubClass(sub1, subClass, mappings, 
sessionFactoryBeanName, m));
         }
     }
 
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java
index 774d01da84..05a326f2dc 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java
@@ -1,5 +1,7 @@
 package org.grails.orm.hibernate.cfg;
 
+import java.util.List;
+
 import org.grails.datastore.mapping.model.PersistentEntity;
 import org.grails.datastore.mapping.model.PersistentProperty;
 
@@ -16,4 +18,17 @@ public interface GrailsHibernatePersistentEntity extends 
PersistentEntity {
     PersistentProperty[] getCompositeIdentity();
 
     boolean isAbstract();
+
+
+    default List<GrailsHibernatePersistentEntity> getChildEntities(String 
dataSourceName) {
+        return getMappingContext()
+                .getDirectChildEntities(this)
+                .stream()
+                .filter(GrailsHibernatePersistentEntity.class::isInstance)
+                .map(GrailsHibernatePersistentEntity.class::cast)
+                .filter(persistentEntity -> 
persistentEntity.usesConnectionSource(dataSourceName))
+                .filter(sub -> 
sub.getJavaClass().getSuperclass().equals(this.getJavaClass()))
+                .toList();
+    }
+
 }

Reply via email to