This is an automated email from the ASF dual-hosted git repository. borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit d412c74b72fbb7b5253c6eb287efd00a30fe2822 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Mar 4 21:51:34 2026 -0600 cleanup(hibernate7): DefaultColumnNameFetcher --- .../cfg/domainbinding/util/CreateKeyForProps.java | 28 ++++++++++------------ .../util/DefaultColumnNameFetcher.java | 9 ++++--- .../cfg/domainbinding/CreateKeyForPropsSpec.groovy | 20 ++++++++-------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/CreateKeyForProps.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/CreateKeyForProps.java index 8d582ef726..bbbfb33a26 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/CreateKeyForProps.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/CreateKeyForProps.java @@ -19,10 +19,9 @@ package org.grails.orm.hibernate.cfg.domainbinding.util; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; -import org.grails.datastore.mapping.model.PersistentEntity; import org.grails.orm.hibernate.cfg.PropertyConfig; +import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty; import org.hibernate.MappingException; import org.hibernate.mapping.Column; @@ -56,20 +55,19 @@ public class CreateKeyForProps { List<Column> keyList = new ArrayList<>(); keyList.add(new Column(columnName)); List<String> propertyNames = mappedForm.getUniquenessGroup(); - PersistentEntity owner = grailsProp.getOwner(); - for (Iterator<?> i = propertyNames.iterator(); i.hasNext(); ) { - String propertyName = (String) i.next(); - HibernatePersistentProperty otherProp = - (HibernatePersistentProperty) owner.getPropertyByName(propertyName); - if (otherProp == null) { - throw new MappingException( - owner.getJavaClass().getName() + " references an unknown property " + propertyName); + GrailsHibernatePersistentEntity owner = grailsProp.getHibernateOwner(); + for (String propertyName : propertyNames) { + HibernatePersistentProperty otherProp = + (HibernatePersistentProperty) owner.getPropertyByName(propertyName); + if (otherProp == null) { + throw new MappingException( + owner.getJavaClass().getName() + " references an unknown property " + propertyName); + } + String otherColumnName = + columnNameForPropertyAndPathFetcher.getColumnNameForPropertyAndPath( + otherProp, path, null); + keyList.add(new Column(otherColumnName)); } - String otherColumnName = - columnNameForPropertyAndPathFetcher.getColumnNameForPropertyAndPath( - otherProp, path, null); - keyList.add(new Column(otherColumnName)); - } uniqueKeyForColumnsCreator.createUniqueKeyForColumns(table, keyList); } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.java index 7bea16b7cd..bc79022598 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.java @@ -18,12 +18,12 @@ */ package org.grails.orm.hibernate.cfg.domainbinding.util; -import org.grails.datastore.mapping.model.types.Association; -import org.grails.datastore.mapping.model.types.Basic; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; +import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateAssociation; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateManyToManyProperty; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateOneToManyProperty; import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty; +import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty; @SuppressWarnings("PMD.DataflowAnomalyAnalysis") public class DefaultColumnNameFetcher { @@ -48,9 +48,8 @@ public class DefaultColumnNameFetcher { public String getDefaultColumnName(HibernatePersistentProperty property) { String columnName = namingStrategyWrapper.resolveColumnName(property.getName()); - if (property instanceof Association) { - Association association = (Association) property; - boolean isBasic = property instanceof Basic; + if (property instanceof HibernateAssociation association) { + boolean isBasic = property instanceof HibernateToManyProperty toMany && toMany.isBasic(); if (isBasic && (property.getMappedForm()).getType() != null) { return columnName; } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CreateKeyForPropsSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CreateKeyForPropsSpec.groovy index 9b5277bcae..79ca66422d 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CreateKeyForPropsSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/CreateKeyForPropsSpec.groovy @@ -1,6 +1,6 @@ package org.grails.orm.hibernate.cfg.domainbinding -import org.grails.datastore.mapping.model.PersistentEntity +import org.grails.orm.hibernate.cfg.domainbinding.hibernate.GrailsHibernatePersistentEntity import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernatePersistentProperty import org.hibernate.MappingException import org.hibernate.mapping.Table @@ -18,9 +18,9 @@ class CreateKeyForPropsSpec extends Specification { def uniqueKeyCreator = Mock(UniqueKeyForColumnsCreator) def subject = new CreateKeyForProps(columnNameFetcher, uniqueKeyCreator) - def owner = Mock(PersistentEntity) + def owner = Mock(GrailsHibernatePersistentEntity) def grailsProp = Mock(HibernatePersistentProperty) { - getOwner() >> owner + getHibernateOwner() >> owner } def mappedForm = Mock(org.grails.orm.hibernate.cfg.PropertyConfig) { @@ -47,7 +47,7 @@ class CreateKeyForPropsSpec extends Specification { then: 1 * grailsProp.getMappedForm() >> mappedForm - 1 * grailsProp.getOwner() >> owner + 1 * grailsProp.getHibernateOwner() >> owner 1 * mappedForm.isUnique() >> true 1 * mappedForm.isUniqueWithinGroup() >> true 1 * mappedForm.getUniquenessGroup() >> ["p1", "p2"] @@ -64,8 +64,8 @@ class CreateKeyForPropsSpec extends Specification { def uniqueKeyCreator = Mock(UniqueKeyForColumnsCreator) def subject = new CreateKeyForProps(columnNameFetcher, uniqueKeyCreator) - def owner = Mock(PersistentEntity) - def grailsProp = Mock(HibernatePersistentProperty) { getOwner() >> owner } + def owner = Mock(GrailsHibernatePersistentEntity) + def grailsProp = Mock(HibernatePersistentProperty) { getHibernateOwner() >> owner } def mappedForm = Mock(org.grails.orm.hibernate.cfg.PropertyConfig) { isUnique() >> false @@ -79,7 +79,7 @@ class CreateKeyForPropsSpec extends Specification { then: 1 * grailsProp.getMappedForm() >> mappedForm - 0 * grailsProp.getOwner() >> owner + 0 * grailsProp.getHibernateOwner() >> owner 1 * mappedForm.isUnique() >> false 0 * uniqueKeyCreator._ 0 * columnNameFetcher._ @@ -91,8 +91,8 @@ class CreateKeyForPropsSpec extends Specification { def uniqueKeyCreator = Mock(UniqueKeyForColumnsCreator) def subject = new CreateKeyForProps(columnNameFetcher, uniqueKeyCreator) - def owner = Mock(PersistentEntity) - def grailsProp = Mock(HibernatePersistentProperty) { getOwner() >> owner } + def owner = Mock(GrailsHibernatePersistentEntity) + def grailsProp = Mock(HibernatePersistentProperty) { getHibernateOwner() >> owner } owner.getJavaClass() >> CreateKeyForPropsSpec def mappedForm = Mock(org.grails.orm.hibernate.cfg.PropertyConfig) { @@ -110,7 +110,7 @@ class CreateKeyForPropsSpec extends Specification { then: thrown(MappingException) 1 * grailsProp.getMappedForm() >> mappedForm - 1 * grailsProp.getOwner() >> owner + 1 * grailsProp.getHibernateOwner() >> owner 1 * mappedForm.isUnique() >> true 1 * mappedForm.isUniqueWithinGroup() >> true 1 * mappedForm.getUniquenessGroup() >> ["missingProp"]
