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 932f38c388891738717e481e637c0a42b0ab2ed6 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Sat Feb 14 00:59:51 2026 -0600 Refactor ColumnNameForPropertyAndPathFetcher to use 3-arg constructor. - ColumnNameForPropertyAndPathFetcher: Removed 1-arg constructor; dependencies are now explicitly provided. - DefaultColumnNameFetcher: Made 2-arg constructor public to allow external instantiation with shared dependencies. - GrailsDomainBinder: Centralized instantiation of BackticksRemover and DefaultColumnNameFetcher. - Updated GrailsPropertyBinder, ComponentPropertyBinder, and ColumnBinder to use the 3-arg constructor of ColumnNameForPropertyAndPathFetcher. --- .../groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java | 7 ++++++- .../orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java | 6 ++++-- .../cfg/domainbinding/binder/ComponentPropertyBinder.java | 4 +++- .../hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java | 4 +++- .../domainbinding/util/ColumnNameForPropertyAndPathFetcher.java | 7 ------- .../hibernate/cfg/domainbinding/util/DefaultColumnNameFetcher.java | 2 +- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java index a9ae8a7aba..e22d885664 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/GrailsDomainBinder.java @@ -39,6 +39,7 @@ import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolde import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionBinder; import org.grails.orm.hibernate.cfg.domainbinding.util.ColumnNameForPropertyAndPathFetcher; import org.grails.orm.hibernate.cfg.domainbinding.util.DefaultColumnNameFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover; import org.grails.orm.hibernate.cfg.domainbinding.util.NamingStrategyWrapper; import org.grails.orm.hibernate.cfg.domainbinding.util.PropertyFromValueCreator; import org.grails.orm.hibernate.cfg.domainbinding.util.TableNameFetcher; @@ -130,6 +131,8 @@ public class GrailsDomainBinder private CompositeIdBinder compositeIdBinder; private IdentityBinder identityBinder; private VersionBinder versionBinder; + private DefaultColumnNameFetcher defaultColumnNameFetcher; + private BackticksRemover backticksRemover; public JdbcEnvironment getJdbcEnvironment() { @@ -184,6 +187,8 @@ public class GrailsDomainBinder metadataCollector , rootMappingDefaults ); + this.backticksRemover = new BackticksRemover(); + this.defaultColumnNameFetcher = new DefaultColumnNameFetcher(getNamingStrategy(), backticksRemover); this.collectionBinder = new CollectionBinder(metadataBuildingContext, this, getNamingStrategy()); this.componentPropertyBinder = new ComponentPropertyBinder(metadataBuildingContext, getNamingStrategy(), getMappingCacheHolder(), getCollectionHolder(), enumTypeBinder, collectionBinder, propertyFromValueCreator); this.grailsPropertyBinder = new GrailsPropertyBinder(metadataBuildingContext, getNamingStrategy(), getCollectionHolder(), enumTypeBinder, componentPropertyBinder, collectionBinder, propertyFromValueCreator); @@ -413,7 +418,7 @@ public class GrailsDomainBinder SimpleValue key = new DependantValue(metadataBuildingContext, mytable, joinedSubclass.getIdentifier()); joinedSubclass.setKey(key); var identifier = sub.getIdentity(); - String columnName = new ColumnNameForPropertyAndPathFetcher(namingStrategy).getColumnNameForPropertyAndPath(identifier, EMPTY_PATH, null); + String columnName = new ColumnNameForPropertyAndPathFetcher(getNamingStrategy(), defaultColumnNameFetcher, backticksRemover).getColumnNameForPropertyAndPath(identifier, EMPTY_PATH, null); new SimpleValueColumnBinder().bindSimpleValue(key, identifier.getType().getName(), columnName, false); joinedSubclass.createPrimaryKey(); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java index c40c0c1344..9e67319478 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/ColumnBinder.java @@ -15,6 +15,8 @@ import org.grails.orm.hibernate.cfg.Mapping; import org.grails.orm.hibernate.cfg.PersistentEntityNamingStrategy; import org.grails.orm.hibernate.cfg.PropertyConfig; import org.grails.orm.hibernate.cfg.domainbinding.util.ColumnNameForPropertyAndPathFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.DefaultColumnNameFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover; import org.grails.orm.hibernate.cfg.domainbinding.util.CreateKeyForProps; public class ColumnBinder { @@ -48,10 +50,10 @@ public class ColumnBinder { */ public ColumnBinder(PersistentEntityNamingStrategy namingStrategy) { this( - new ColumnNameForPropertyAndPathFetcher(namingStrategy), + new ColumnNameForPropertyAndPathFetcher(namingStrategy, new DefaultColumnNameFetcher(namingStrategy), new BackticksRemover()), new StringColumnConstraintsBinder(), new NumericColumnConstraintsBinder(), - new CreateKeyForProps(new ColumnNameForPropertyAndPathFetcher(namingStrategy)), + new CreateKeyForProps(new ColumnNameForPropertyAndPathFetcher(namingStrategy, new DefaultColumnNameFetcher(namingStrategy), new BackticksRemover())), new IndexBinder() ); } 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 bbf5c0c194..aae8a3b8a6 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 @@ -29,6 +29,8 @@ import org.grails.orm.hibernate.cfg.domainbinding.util.PropertyFromValueCreator; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolder; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionType; import org.grails.orm.hibernate.cfg.domainbinding.util.ColumnNameForPropertyAndPathFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.DefaultColumnNameFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover; import jakarta.annotation.Nonnull; @@ -137,7 +139,7 @@ public class ComponentPropertyBinder { value = new BasicValue(metadataBuildingContext, table); if (currentGrailsProp.getType().isEnum()) { - String columnName = new ColumnNameForPropertyAndPathFetcher(namingStrategy).getColumnNameForPropertyAndPath(currentGrailsProp, path, null); + String columnName = new ColumnNameForPropertyAndPathFetcher(namingStrategy, new DefaultColumnNameFetcher(namingStrategy), new BackticksRemover()).getColumnNameForPropertyAndPath(currentGrailsProp, path, null); enumTypeBinder.bindEnumType(currentGrailsProp, currentGrailsProp.getType(), (SimpleValue) value, columnName); } else { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java index 55ee7f86dd..69d65039c1 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/GrailsPropertyBinder.java @@ -12,6 +12,8 @@ import org.grails.orm.hibernate.cfg.domainbinding.util.PropertyFromValueCreator; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionType; import org.grails.orm.hibernate.cfg.domainbinding.collectionType.CollectionHolder; import org.grails.orm.hibernate.cfg.domainbinding.util.ColumnNameForPropertyAndPathFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.DefaultColumnNameFetcher; +import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover; import org.hibernate.boot.spi.InFlightMetadataCollector; import org.hibernate.boot.spi.MetadataBuildingContext; @@ -59,7 +61,7 @@ public class GrailsPropertyBinder { componentPropertyBinder, collectionBinder, new SimpleValueBinder(namingStrategy), - new ColumnNameForPropertyAndPathFetcher(namingStrategy), + new ColumnNameForPropertyAndPathFetcher(namingStrategy, new DefaultColumnNameFetcher(namingStrategy), new BackticksRemover()), new OneToOneBinder(namingStrategy), new ManyToOneBinder(namingStrategy), propertyFromValueCreator); diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ColumnNameForPropertyAndPathFetcher.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ColumnNameForPropertyAndPathFetcher.java index 92f086b90b..8ef41c41ee 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ColumnNameForPropertyAndPathFetcher.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/ColumnNameForPropertyAndPathFetcher.java @@ -14,13 +14,6 @@ public class ColumnNameForPropertyAndPathFetcher { private final BackticksRemover backticksRemover; public ColumnNameForPropertyAndPathFetcher(PersistentEntityNamingStrategy namingStrategy - ) { - this.namingStrategy = namingStrategy; - this.defaultColumnNameFetcher = new DefaultColumnNameFetcher(namingStrategy); - this.backticksRemover = new BackticksRemover(); - } - - protected ColumnNameForPropertyAndPathFetcher(PersistentEntityNamingStrategy namingStrategy , DefaultColumnNameFetcher defaultColumnNameFetcher , BackticksRemover backticksRemover) { this.namingStrategy = namingStrategy; 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 2ef617a2a0..52dbb952b4 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 @@ -20,7 +20,7 @@ public class DefaultColumnNameFetcher { this.backticksRemover = new BackticksRemover(); } - protected DefaultColumnNameFetcher(PersistentEntityNamingStrategy namingStrategyWrapper , BackticksRemover backticksRemover) { + public DefaultColumnNameFetcher(PersistentEntityNamingStrategy namingStrategyWrapper , BackticksRemover backticksRemover) { this.namingStrategyWrapper = namingStrategyWrapper; this.backticksRemover = backticksRemover; }
