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 f8597e4b4ff1339076a210687180864ad3a930e6
Author: Walter B Duque de Estrada <[email protected]>
AuthorDate: Fri Jan 30 14:41:51 2026 -0600

    childEntities
---
 .../orm/hibernate/cfg/GrailsDomainBinder.java      | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 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 c3ff8261bc..5ef8d3c270 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
@@ -1117,17 +1117,9 @@ public class GrailsDomainBinder
             LOG.info("[GrailsDomainBinder] Class [" + entity.getName() + "] is 
already mapped, skipping.. ");
             return;
         }
-        RootClass root = new RootClass(this.metadataBuildingContext);
-        root.setAbstract(entity.isAbstract());
-        classBinding.bindClass(entity, root, mappings);
-        bindRootPersistentClassCommonValues(entity, root, mappings, 
sessionFactoryBeanName);
-
         var children = entity.getChildEntities(dataSourceName);
-
-        if (children.isEmpty()) {
-            root.setPolymorphic(false);
-        } else {
-            root.setPolymorphic(true);
+        RootClass root = bindRootPersistentClassCommonValues(entity, children, 
mappings, sessionFactoryBeanName);
+        if (root.isPolymorphic()) {
             Mapping m = entity.getMappedForm();
             final Mapping finalMapping = m;
             boolean tablePerSubclass = !m.getTablePerHierarchy();
@@ -1444,8 +1436,14 @@ public class GrailsDomainBinder
     /*
      * Binds a persistent classes to the table representation and binds the 
class properties
      */
-    private void bindRootPersistentClassCommonValues(@Nonnull 
GrailsHibernatePersistentEntity domainClass,
-                                                       RootClass root, 
@Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
+    private RootClass bindRootPersistentClassCommonValues(@Nonnull 
GrailsHibernatePersistentEntity domainClass,
+                                                       @Nonnull 
java.util.Collection<GrailsHibernatePersistentEntity> children,
+                                                       @Nonnull 
InFlightMetadataCollector mappings, String sessionFactoryBeanName) {
+
+        RootClass root = new RootClass(this.metadataBuildingContext);
+        root.setAbstract(domainClass.isAbstract());
+        root.setPolymorphic(!children.isEmpty());
+        classBinding.bindClass(domainClass, root, mappings);
 
         // get the schema and catalog names from the configuration
         Mapping gormMapping = domainClass.getMappedForm();
@@ -1491,6 +1489,8 @@ public class GrailsDomainBinder
         new VersionBinder(metadataBuildingContext, 
namingStrategy).bindVersion(domainClass.getVersion(), root);
         root.createPrimaryKey();
         createClassProperties(domainClass, root, mappings, 
sessionFactoryBeanName);
+
+        return root;
     }
 
 

Reply via email to