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 9d2595eddab5c3d23c0c2b91861dbe959e738ca2 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Feb 7 14:56:02 2026 -0600 Summary of changes: - Modified HibernateToManyProperty.java to return GrailsHibernatePersistentEntity in getAssociatedEntity() and removed the unused PersistentEntity import. - Overrode getAssociatedEntity() in HibernateManyToOneProperty, HibernateOneToOneProperty, HibernateManyToManyProperty, and HibernateOneToManyProperty to return the more specific GrailsHibernatePersistentEntity type. - Updated CollectionSecondPassBinder.java to use the more specific GrailsHibernatePersistentEntity type and removed redundant casts. - Updated TableForManyCalculator.java to use GrailsHibernatePersistentEntity. --- .../orm/hibernate/cfg/HibernateManyToManyProperty.java | 5 +++++ .../grails/orm/hibernate/cfg/HibernateManyToOneProperty.java | 5 +++++ .../grails/orm/hibernate/cfg/HibernateOneToManyProperty.java | 5 +++++ .../grails/orm/hibernate/cfg/HibernateOneToOneProperty.java | 5 +++++ .../grails/orm/hibernate/cfg/HibernateToManyProperty.java | 5 ++--- .../hibernate/cfg/domainbinding/TableForManyCalculator.java | 3 ++- .../domainbinding/secondpass/CollectionSecondPassBinder.java | 12 ++++++------ 7 files changed, 30 insertions(+), 10 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToManyProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToManyProperty.java index 67ea10d0d2..3f2e278ef2 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToManyProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToManyProperty.java @@ -13,4 +13,9 @@ public class HibernateManyToManyProperty extends ManyToManyWithMapping<PropertyC public HibernateManyToManyProperty(PersistentEntity entity, MappingContext context, PropertyDescriptor property) { super(entity, context, property); } + + @Override + public GrailsHibernatePersistentEntity getAssociatedEntity() { + return (GrailsHibernatePersistentEntity) super.getAssociatedEntity(); + } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToOneProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToOneProperty.java index 21112df58a..0bad6f60b4 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToOneProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateManyToOneProperty.java @@ -13,4 +13,9 @@ public class HibernateManyToOneProperty extends ManyToOneWithMapping<PropertyCon public HibernateManyToOneProperty(PersistentEntity entity, MappingContext context, PropertyDescriptor property) { super(entity, context, property); } + + @Override + public GrailsHibernatePersistentEntity getAssociatedEntity() { + return (GrailsHibernatePersistentEntity) super.getAssociatedEntity(); + } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToManyProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToManyProperty.java index 186339b7e5..63a9cf1412 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToManyProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToManyProperty.java @@ -13,4 +13,9 @@ public class HibernateOneToManyProperty extends OneToManyWithMapping<PropertyCon public HibernateOneToManyProperty(PersistentEntity entity, MappingContext context, PropertyDescriptor property) { super(entity, context, property); } + + @Override + public GrailsHibernatePersistentEntity getAssociatedEntity() { + return (GrailsHibernatePersistentEntity) super.getAssociatedEntity(); + } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToOneProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToOneProperty.java index 7d77de6485..347799452c 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToOneProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateOneToOneProperty.java @@ -13,4 +13,9 @@ public class HibernateOneToOneProperty extends OneToOneWithMapping<PropertyConfi public HibernateOneToOneProperty(PersistentEntity entity, MappingContext context, PropertyDescriptor property) { super(entity, context, property); } + + @Override + public GrailsHibernatePersistentEntity getAssociatedEntity() { + return (GrailsHibernatePersistentEntity) super.getAssociatedEntity(); + } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateToManyProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateToManyProperty.java index 8ed62697bc..4b183322b8 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateToManyProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/HibernateToManyProperty.java @@ -1,6 +1,5 @@ package org.grails.orm.hibernate.cfg; -import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.model.types.Association; import org.grails.datastore.mapping.model.types.Basic; import org.grails.datastore.mapping.model.types.ManyToMany; @@ -29,8 +28,8 @@ public interface HibernateToManyProperty extends GrailsHibernatePersistentProper return ((Association) this).isCircular(); } - default PersistentEntity getAssociatedEntity() { - return ((Association) this).getAssociatedEntity(); + default GrailsHibernatePersistentEntity getAssociatedEntity() { + return (GrailsHibernatePersistentEntity) ((Association) this).getAssociatedEntity(); } default boolean isBidirectionalOneToManyMap() { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java index 48c75ba495..a123543039 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/TableForManyCalculator.java @@ -7,6 +7,7 @@ import org.hibernate.MappingException; import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.datastore.mapping.model.types.Basic; import org.grails.datastore.mapping.model.types.ManyToMany; +import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.HibernateToManyProperty; import org.grails.orm.hibernate.cfg.JoinTable; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; @@ -72,7 +73,7 @@ public class TableForManyCalculator { throw new MappingException("Expected an entity to be associated with the association (" + property + ") and none was found. "); } - PersistentEntity domainClass = property.getAssociatedEntity(); + GrailsHibernatePersistentEntity domainClass = property.getAssociatedEntity(); String right = tableNameFetcher.getTableName(domainClass); if (property instanceof ManyToMany property1) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinder.java index 88317014c3..2d493c6e69 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionSecondPassBinder.java @@ -69,7 +69,7 @@ public class CollectionSecondPassBinder { PropertyConfig propConfig = property.getMappedForm(); - PersistentEntity referenced = property.getAssociatedEntity(); + GrailsHibernatePersistentEntity referenced = property.getAssociatedEntity(); if (StringUtils.hasText(propConfig.getSort())) { if (!property.isBidirectional() && (property instanceof org.grails.datastore.mapping.model.types.OneToMany)) { throw new DatastoreConfigurationException("Default sort for associations ["+property.getOwner().getName()+"->" + property.getName() + @@ -78,7 +78,7 @@ public class CollectionSecondPassBinder { if (referenced != null) { PersistentProperty propertyToSortBy = referenced.getPropertyByName(propConfig.getSort()); - String associatedClassName = property.getAssociatedEntity().getName(); + String associatedClassName = referenced.getName(); associatedClass = (PersistentClass) persistentClasses.get(associatedClassName); if (associatedClass != null) { @@ -112,7 +112,7 @@ public class CollectionSecondPassBinder { } } //NOTE: this will build the set for the in clause if it has sublcasses - java.util.Set<String> discSet = buildDiscriminatorSet((GrailsHibernatePersistentEntity) referenced); + java.util.Set<String> discSet = buildDiscriminatorSet(referenced); String inclause = String.join(",", discSet); collection.setWhere(discriminatorColumnName + " in (" + inclause + ")"); @@ -312,11 +312,11 @@ public class CollectionSecondPassBinder { } } } else { - final PersistentEntity domainClass = property.getAssociatedEntity(); + final GrailsHibernatePersistentEntity domainClass = property.getAssociatedEntity(); Mapping m = null; if (domainClass != null) { - m = ((GrailsHibernatePersistentEntity) domainClass).getMappedForm(); + m = domainClass.getMappedForm(); } if (m != null && m.hasCompositeIdentifier()) { CompositeIdentity ci = (CompositeIdentity) m.getIdentity(); @@ -577,7 +577,7 @@ public class CollectionSecondPassBinder { return false; } - public String getMultiTenantFilterCondition(PersistentEntity referenced) { + public String getMultiTenantFilterCondition(GrailsHibernatePersistentEntity referenced) { TenantId tenantId = referenced.getTenantId(); if(tenantId != null) {
