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; }
