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 5cc4dcac05fde8898038231b72aca6808d0cc4c0 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Feb 28 21:59:12 2026 -0600 refactor Mapping calss --- .../groovy/org/grails/orm/hibernate/cfg/Mapping.groovy | 12 ++++++++++++ .../hibernate/cfg/domainbinding/binder/ColumnBinder.java | 11 +---------- .../cfg/domainbinding/binder/SubClassBinder.java | 9 +-------- .../cfg/domainbinding/binder/SubclassMappingBinder.java | 4 ++-- .../hibernate/GrailsHibernatePersistentEntity.java | 16 ++++++++++------ 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/Mapping.groovy b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/Mapping.groovy index 897a358724..b250a2c714 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/Mapping.groovy +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/Mapping.groovy @@ -140,6 +140,18 @@ class Mapping extends Entity<PropertyConfig> { String comment + boolean isTablePerHierarchy() { + return tablePerHierarchy + } + + boolean isJoinedSubclass() { + return !tablePerHierarchy && !tablePerConcreteClass + } + + boolean isUnionSubclass() { + return tablePerConcreteClass + } + boolean isTablePerConcreteClass() { return tablePerConcreteClass } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java index 29cb7402aa..4a5a055603 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java @@ -76,14 +76,6 @@ public class ColumnBinder { new IndexBinder()); } - /** Protected constructor for testing purposes. */ - protected ColumnBinder() { - this.columnNameForPropertyAndPathFetcher = null; - this.stringColumnConstraintsBinder = null; - this.numericColumnConstraintsBinder = null; - this.createKeyForProps = null; - this.indexBinder = null; - } /** * Binds a Column instance to the Hibernate meta model @@ -154,8 +146,7 @@ public class ColumnBinder { var owner = property.getHibernateOwner(); if (!owner.isRoot()) { - Mapping mapping = owner.getMappedForm(); - if (mapping != null && mapping.getTablePerHierarchy()) { + if (owner.isTablePerHierarchy()) { if (LOG.isDebugEnabled()) LOG.debug( "[GrailsDomainBinder] Sub class property [" 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 b1049a5e4b..f73424b2c5 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 @@ -65,17 +65,10 @@ public class SubClassBinder { Mapping m) { mappingCacheHolder.cacheMapping(sub); Subclass subClass = subclassMappingBinder.createSubclassMapping(sub, parent, mappings, m); - parent.addSubclass(subClass); mappings.addEntityBinding(subClass); - bindMultiTenantFilter(sub, subClass); - - Collection<GrailsHibernatePersistentEntity> children = sub.getChildEntities(dataSourceName); - if (!children.isEmpty()) { - // bind the sub classes - children.forEach(sub1 -> bindSubClass(sub1, subClass, mappings, m)); - } + sub.getChildEntities(dataSourceName).forEach(sub1 -> bindSubClass(sub1, subClass, mappings, m)); } private void bindMultiTenantFilter(GrailsHibernatePersistentEntity sub, Subclass subClass) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java index ade61515b2..08dc1fa15d 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SubclassMappingBinder.java @@ -59,11 +59,11 @@ public class SubclassMappingBinder { Mapping m) { Subclass subClass; subEntity.configureDerivedProperties(); - if (!m.getTablePerHierarchy() && !m.isTablePerConcreteClass()) { + if (m.isJoinedSubclass()) { var joined = new JoinedSubclass(parent, this.metadataBuildingContext); joinedSubClassBinder.bindJoinedSubClass(subEntity, joined, mappings); subClass = joined; - } else if (m.isTablePerConcreteClass()) { + } else if (m.isUnionSubclass()) { var union = new UnionSubclass(parent, this.metadataBuildingContext); unionSubclassBinder.bindUnionSubclass(subEntity, union, mappings); subClass = union; diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java index 17409f1c39..3911799126 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java @@ -55,21 +55,25 @@ public interface GrailsHibernatePersistentEntity extends PersistentEntity { default boolean isTablePerHierarchy() { Mapping mapping = getMappedForm(); - return mapping == null || mapping.getTablePerHierarchy(); + return mapping == null || mapping.isTablePerHierarchy(); } - default boolean isTablePerConcreteClass() { + default boolean isJoinedSubclass() { Mapping mapping = getMappedForm(); - return mapping != null && mapping.isTablePerConcreteClass(); + return mapping != null && mapping.isJoinedSubclass(); + } + + default boolean isUnionSubclass() { + Mapping mapping = getMappedForm(); + return mapping != null && mapping.isUnionSubclass(); } default boolean isTableAbstract() { - return !isTablePerHierarchy() && isTablePerConcreteClass() && isAbstract(); + return isUnionSubclass() && isAbstract(); } default boolean isTablePerHierarchySubclass() { - Mapping rootMapping = getRootMapping(); - return !this.isRoot() && (rootMapping == null || rootMapping.getTablePerHierarchy()); + return !this.isRoot() && getHibernateRootEntity().isTablePerHierarchy(); } default Set<String> buildDiscriminatorSet() {
