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 8e2d0397d55647e69b4b1df5268a2a0559a49099 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Feb 7 08:40:39 2026 -0600 progress --- .../cfg/GrailsHibernatePersistentProperty.java | 17 ++++++++++++----- .../cfg/domainbinding/CollectionBinder.java | 22 +--------------------- .../domainbinding/CollectionSecondPassBinder.java | 4 ---- .../cfg/domainbinding/MapSecondPassBinder.java | 13 ++----------- 4 files changed, 15 insertions(+), 41 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java index 6b98c2926a..7430a6c596 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsHibernatePersistentProperty.java @@ -118,10 +118,17 @@ public interface GrailsHibernatePersistentProperty extends PersistentProperty<Pr } default String getIndexColumnName(PersistentEntityNamingStrategy namingStrategy) { - PropertyConfig pc = getMappedForm(); - if (pc.getIndexColumn() != null && pc.getIndexColumn().getColumn() != null) { - return pc.getIndexColumn().getColumn(); - } - return namingStrategy.resolveColumnName(getName()) + GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME; + return Optional.ofNullable(getMappedForm()) + .map(PropertyConfig::getIndexColumn) + .map(PropertyConfig::getColumn) + .orElseGet(() -> namingStrategy.resolveColumnName(getName()) + GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_INDEX_COLUMN_NAME); + } + + default String getMapElementName(PersistentEntityNamingStrategy namingStrategy) { + return Optional.ofNullable(getMappedForm()) + .map(PropertyConfig::getJoinTable) + .map(JoinTable::getColumn) + .map(ColumnConfig::getName) + .orElseGet(() -> namingStrategy.resolveColumnName(getName()) + GrailsDomainBinder.UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME); } } \ No newline at end of file diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java index 1687ef0417..b9b25a9d4c 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionBinder.java @@ -132,15 +132,6 @@ public class CollectionBinder { collectionSecondPassBinder.bindCollectionSecondPass(property, mappings, persistentClasses, collection, sessionFactoryBeanName); } - public void bindListSecondPass(HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, - Map<?, ?> persistentClasses, org.hibernate.mapping.List list, String sessionFactoryBeanName) { - listSecondPassBinder.bindListSecondPass(property, mappings, persistentClasses, list, sessionFactoryBeanName); - } - - public void bindMapSecondPass(HibernateToManyProperty property, @Nonnull InFlightMetadataCollector mappings, - Map<?, ?> persistentClasses, org.hibernate.mapping.Map map, String sessionFactoryBeanName) { - mapSecondPassBinder.bindMapSecondPass(property, mappings, persistentClasses, map, sessionFactoryBeanName); - } private String getNameForPropertyAndPath(PersistentProperty property, String path) { if (GrailsHibernateUtil.isNotEmpty(path)) { @@ -186,18 +177,7 @@ public class CollectionBinder { - public Property getProperty(PersistentClass associatedClass, String propertyName) throws MappingException { - try { - return associatedClass.getProperty(propertyName); - } - catch (MappingException e) { - //maybe it's squirreled away in a composite primary key - if (associatedClass.getKey() instanceof Component) { - return ((Component) associatedClass.getKey()).getProperty(propertyName); - } - throw e; - } - } + public String getMultiTenantFilterCondition(GrailsHibernatePersistentEntity referenced) { return collectionSecondPassBinder.getMultiTenantFilterCondition(referenced); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java index bbe589b0ba..0d22e749e3 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/CollectionSecondPassBinder.java @@ -17,7 +17,6 @@ import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.boot.spi.MetadataBuildingContext; import org.hibernate.mapping.*; import org.hibernate.mapping.Collection; -import org.hibernate.type.StandardBasicTypes; import org.hibernate.type.Type; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -578,7 +577,4 @@ public class CollectionSecondPassBinder { } } - public boolean hasJoinTableColumnNameMapping(PropertyConfig pc) { - return pc != null && pc.getJoinTable() != null && pc.getJoinTable().getColumn() != null && pc.getJoinTable().getColumn().getName() != null; - } } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java index bb2634ea67..74c0fef098 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/MapSecondPassBinder.java @@ -1,7 +1,7 @@ package org.grails.orm.hibernate.cfg.domainbinding; import jakarta.annotation.Nonnull; -import org.grails.datastore.mapping.model.PersistentProperty; + import org.grails.datastore.mapping.model.types.Basic; import org.grails.orm.hibernate.cfg.ColumnConfig; import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity; @@ -78,7 +78,7 @@ public class MapSecondPassBinder { if(typeName == null || typeName.equals(Object.class.getName())) { typeName = StandardBasicTypes.STRING.getName(); } - String columnName = getMapElementName(property, sessionFactoryBeanName); + String columnName = property.getMapElementName(namingStrategy); new SimpleValueColumnBinder().bindSimpleValue(elt, typeName, columnName, false); elt.setTypeName(typeName); @@ -96,13 +96,4 @@ public class MapSecondPassBinder { } return null; } - - private String getMapElementName(PersistentProperty property, String sessionFactoryBeanName) { - PropertyConfig pc = property instanceof GrailsHibernatePersistentProperty ghpp ? ghpp.getMappedForm() : new PropertyConfig(); - - if (collectionSecondPassBinder.hasJoinTableColumnNameMapping(pc)) { - return pc.getJoinTable().getColumn().getName(); - } - return namingStrategy.resolveColumnName(property.getName()) + UNDERSCORE + IndexedCollection.DEFAULT_ELEMENT_COLUMN_NAME; - } }
