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 bef44f95707422dd4a2f81ab1e70f096d09d6fc2 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Fri Feb 13 11:41:26 2026 -0600 replacing all appropriate calls from GrailsHibernatePersistentEntity to getPersistentProperties() with getHibernatePersistentProperties() across the grails-data-hibernate7 module --- .../orm/hibernate/cfg/GrailsHibernatePersistentEntity.java | 13 ++++++++++--- .../hibernate/cfg/domainbinding/binder/ComponentBinder.java | 12 ++++-------- .../cfg/domainbinding/binder/ComponentPropertyBinder.java | 6 ++---- .../hibernate/cfg/domainbinding/ComponentBinderSpec.groovy | 9 +++++---- .../liquibase/GormColumnSnapshotGenerator.groovy | 2 +- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java index 788104aad1..f055ebc521 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentEntity.java @@ -87,7 +87,7 @@ package org.grails.orm.hibernate.cfg; * @return The properties that should be bound to the Hibernate meta model */ default List<GrailsHibernatePersistentProperty> getPersistentPropertiesToBind() { - List<PersistentProperty> properties = getPersistentProperties(); + List<GrailsHibernatePersistentProperty> properties = getHibernatePersistentProperties(); if (properties == null) { return java.util.Collections.emptyList(); } @@ -98,7 +98,6 @@ package org.grails.orm.hibernate.cfg; .filter(p -> !p.isCompositeIdProperty()) .filter(p -> !GormProperties.VERSION.equals(p.getName())) .filter(p -> !p.isInherited()) - .map(p -> (GrailsHibernatePersistentProperty) p) .toList(); } @@ -127,7 +126,7 @@ package org.grails.orm.hibernate.cfg; } default void configureDerivedProperties(){ - getPersistentProperties().forEach(new ConfigureDerivedPropertiesConsumer( getMappedForm())); + getHibernatePersistentProperties().forEach(new ConfigureDerivedPropertiesConsumer( getMappedForm())); } default String getMultiTenantFilterCondition(DefaultColumnNameFetcher fetcher) { @@ -163,5 +162,13 @@ package org.grails.orm.hibernate.cfg; private static String resolveDiscriminatorValue(DiscriminatorConfig discriminatorConfig) { return discriminatorConfig.getColumn() != null ? discriminatorConfig.getColumn().getName() : discriminatorConfig.getFormula(); } + + default List<GrailsHibernatePersistentProperty> getHibernatePersistentProperties(){ + return getPersistentProperties() + .stream() + .filter(GrailsHibernatePersistentProperty.class::isInstance) + .map(GrailsHibernatePersistentProperty.class::cast) + .toList(); + }; } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.java index 5952527b1b..b507f5ac70 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentBinder.java @@ -33,7 +33,7 @@ public class ComponentBinder { } public void bindComponent(Component component, HibernateEmbeddedProperty property, - boolean isNullable, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { + @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { Class<?> type = property.getType(); String role = GrailsHibernateUtil.qualify(type.getName(), property.getName()); component.setRoleName(role); @@ -41,13 +41,13 @@ public class ComponentBinder { GrailsHibernatePersistentEntity domainClass = (GrailsHibernatePersistentEntity) property.getAssociatedEntity(); mappingCacheHolder.cacheMapping(domainClass); - final List<PersistentProperty> properties = domainClass.getPersistentProperties(); + var properties = domainClass.getHibernatePersistentProperties(); Table table = component.getOwner().getTable(); PersistentClass persistentClass = component.getOwner(); String path = property.getName(); Class<?> propertyType = property.getOwner().getJavaClass(); - for (PersistentProperty currentGrailsProp : properties) { + for (GrailsHibernatePersistentProperty currentGrailsProp : properties) { if (currentGrailsProp.equals(domainClass.getIdentity())) continue; if (currentGrailsProp.getName().equals(GormProperties.VERSION)) continue; @@ -55,11 +55,7 @@ public class ComponentBinder { component.setParentProperty(currentGrailsProp.getName()); continue; } - - if (currentGrailsProp instanceof GrailsHibernatePersistentProperty hibernateProp) { - componentPropertyBinder.bindComponentProperty(component, property, hibernateProp, persistentClass, path, - table, mappings, sessionFactoryBeanName); - } + componentPropertyBinder.bindComponentProperty(component, property, currentGrailsProp, persistentClass, path, table, mappings, sessionFactoryBeanName); } } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentPropertyBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentPropertyBinder.java index 44854c9d65..bbf5c0c194 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentPropertyBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ComponentPropertyBinder.java @@ -18,9 +18,7 @@ import org.hibernate.mapping.Value; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.grails.datastore.mapping.model.PersistentProperty; import org.grails.datastore.mapping.model.types.Association; -import org.grails.datastore.mapping.model.types.Embedded; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentProperty; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateEmbeddedProperty; @@ -131,7 +129,7 @@ public class ComponentPropertyBinder { } else if (currentGrailsProp instanceof HibernateEmbeddedProperty embedded) { value = new Component(metadataBuildingContext, persistentClass); - componentBinder.bindComponent((Component) value, embedded, true, mappings, sessionFactoryBeanName); + componentBinder.bindComponent((Component) value, embedded, mappings, sessionFactoryBeanName); } else { if (LOG.isDebugEnabled()) @@ -161,6 +159,6 @@ public class ComponentPropertyBinder { public void bindComponent(Component component, HibernateEmbeddedProperty property, boolean isNullable, @Nonnull InFlightMetadataCollector mappings, String sessionFactoryBeanName) { - componentBinder.bindComponent(component, property, isNullable, mappings, sessionFactoryBeanName); + componentBinder.bindComponent(component, property, mappings, sessionFactoryBeanName); } } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy index 289d9e0b5c..abeb1d5d76 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/ComponentBinderSpec.groovy @@ -2,6 +2,7 @@ package org.grails.orm.hibernate.cfg.domainbinding import grails.gorm.specs.HibernateGormDatastoreSpec import org.grails.datastore.mapping.model.PersistentProperty +import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentProperty import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateEmbeddedProperty import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity import org.grails.orm.hibernate.cfg.MappingCacheHolder @@ -43,22 +44,22 @@ class ComponentBinderSpec extends HibernateGormDatastoreSpec { } associatedEntity.getName() >> "Address" - def prop1 = Mock(PersistentProperty) + def prop1 = Mock(GrailsHibernatePersistentProperty) prop1.getName() >> "street" prop1.getType() >> String - associatedEntity.getPersistentProperties() >> [prop1] + associatedEntity.getHibernatePersistentProperties() >> [prop1] associatedEntity.getIdentity() >> null def mappings = metadataBuildingContext.getMetadataCollector() when: - binder.bindComponent(component, embeddedProp, true, mappings, "sessionFactory") + binder.bindComponent(component, embeddedProp, mappings, "sessionFactory") then: component.getComponentClassName() == Address.name component.getRoleName() == Address.name + ".address" 1 * mappingCacheHolder.cacheMapping(associatedEntity) - 0 * componentPropertyBinder.bindComponentProperty(_, _, _, _, _, _, _, _) + 1 * componentPropertyBinder.bindComponentProperty(_, _, _, _, _, _, _, _) } static class MyEntity {} diff --git a/grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/liquibase/GormColumnSnapshotGenerator.groovy b/grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/liquibase/GormColumnSnapshotGenerator.groovy index 349e0b8f8a..c3fa0d0276 100644 --- a/grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/liquibase/GormColumnSnapshotGenerator.groovy +++ b/grails-data-hibernate7/dbmigration/src/main/groovy/org/grails/plugins/databasemigration/liquibase/GormColumnSnapshotGenerator.groovy @@ -118,7 +118,7 @@ class GormColumnSnapshotGenerator implements SnapshotGenerator { } protected PersistentProperty resolveGormProperty(GrailsHibernatePersistentEntity gpe, String columnName) { - for (PersistentProperty prop : gpe.persistentProperties) { + for (PersistentProperty prop : gpe.hibernatePersistentProperties) { String propColumnName = null if (prop instanceof GrailsHibernatePersistentProperty) { propColumnName = ((GrailsHibernatePersistentProperty) prop).mappedColumnName
