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;
     }

Reply via email to