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) {
 

Reply via email to