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 e5ec2d7b9b6b09461e15b3fe489de355735e58fa Author: Walter Duque de Estrada <[email protected]> AuthorDate: Wed Feb 18 21:04:48 2026 -0600 Inject ColumnConfigToColumnBinder and SimpleValueColumnBinder into CollectionWithJoinTableBinder --- .../cfg/domainbinding/binder/CollectionBinder.java | 4 +++- .../secondpass/CollectionWithJoinTableBinder.java | 14 ++++++++++---- .../secondpass/CollectionWithJoinTableBinderSpec.groovy | 8 +++++++- .../secondpass/UnidirectionalOneToManyBinderSpec.groovy | 6 +++++- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java index c59f9b5cff..e690bf8207 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/CollectionBinder.java @@ -85,7 +85,9 @@ public class CollectionBinder { enumTypeBinder, compositeIdentifierToManyToOneBinder, simpleValueColumnFetcher, - collectionForPropertyConfigBinder + collectionForPropertyConfigBinder, + new SimpleValueColumnBinder(), + new ColumnConfigToColumnBinder() ); this.unidirectionalOneToManyBinder = new UnidirectionalOneToManyBinder(collectionWithJoinTableBinder); this.collectionSecondPassBinder = new CollectionSecondPassBinder( diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java index 4d4faec043..55a60fa885 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinder.java @@ -34,6 +34,8 @@ public class CollectionWithJoinTableBinder { private final CompositeIdentifierToManyToOneBinder compositeIdentifierToManyToOneBinder; private final SimpleValueColumnFetcher simpleValueColumnFetcher; private final CollectionForPropertyConfigBinder collectionForPropertyConfigBinder; + private final SimpleValueColumnBinder simpleValueColumnBinder; + private final ColumnConfigToColumnBinder columnConfigToColumnBinder; public CollectionWithJoinTableBinder( MetadataBuildingContext metadataBuildingContext, @@ -42,7 +44,9 @@ public class CollectionWithJoinTableBinder { EnumTypeBinder enumTypeBinder, CompositeIdentifierToManyToOneBinder compositeIdentifierToManyToOneBinder, SimpleValueColumnFetcher simpleValueColumnFetcher, - CollectionForPropertyConfigBinder collectionForPropertyConfigBinder) { + CollectionForPropertyConfigBinder collectionForPropertyConfigBinder, + SimpleValueColumnBinder simpleValueColumnBinder, + ColumnConfigToColumnBinder columnConfigToColumnBinder) { this.metadataBuildingContext = metadataBuildingContext; this.namingStrategy = namingStrategy; this.unidirectionalOneToManyInverseValuesBinder = unidirectionalOneToManyInverseValuesBinder; @@ -50,6 +54,8 @@ public class CollectionWithJoinTableBinder { this.compositeIdentifierToManyToOneBinder = compositeIdentifierToManyToOneBinder; this.simpleValueColumnFetcher = simpleValueColumnFetcher; this.collectionForPropertyConfigBinder = collectionForPropertyConfigBinder; + this.simpleValueColumnBinder = simpleValueColumnBinder; + this.columnConfigToColumnBinder = columnConfigToColumnBinder; } public void bindCollectionWithJoinTable(@Nonnull HibernateToManyProperty property, @@ -100,12 +106,12 @@ public class CollectionWithJoinTableBinder { throw new MappingException("Missing type or column for column["+columnName+"] on domain["+domainName+"] referencing["+className+"]"); } - new SimpleValueColumnBinder().bindSimpleValue(element, typeName, columnName, true); + simpleValueColumnBinder.bindSimpleValue(element, typeName, columnName, true); if (joinColumnMappingOptional.isPresent()) { Column column = simpleValueColumnFetcher.getColumnForSimpleValue(element); ColumnConfig columnConfig = joinColumnMappingOptional.get(); final PropertyConfig mappedForm = property.getMappedForm(); - new ColumnConfigToColumnBinder().bindColumnConfigToColumn(column, columnConfig, mappedForm); + columnConfigToColumnBinder.bindColumnConfigToColumn(column, columnConfig, mappedForm); } } } else { @@ -128,7 +134,7 @@ public class CollectionWithJoinTableBinder { columnName = namingStrategy.resolveColumnName(decapitalize) + FOREIGN_KEY_SUFFIX; } - new SimpleValueColumnBinder().bindSimpleValue(element, "long", columnName, true); + simpleValueColumnBinder.bindSimpleValue(element, "long", columnName, true); } } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderSpec.groovy index 27ff1401ab..78afb75e0a 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/CollectionWithJoinTableBinderSpec.groovy @@ -5,8 +5,10 @@ import grails.gorm.specs.HibernateGormDatastoreSpec import org.grails.datastore.mapping.model.PersistentEntity import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentProperty import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionForPropertyConfigBinder +import org.grails.orm.hibernate.cfg.domainbinding.binder.ColumnConfigToColumnBinder import org.grails.orm.hibernate.cfg.domainbinding.binder.CompositeIdentifierToManyToOneBinder import org.grails.orm.hibernate.cfg.domainbinding.binder.EnumTypeBinder +import org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder import org.grails.orm.hibernate.cfg.domainbinding.util.SimpleValueColumnFetcher import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateToManyProperty import org.hibernate.boot.spi.InFlightMetadataCollector @@ -28,6 +30,8 @@ class CollectionWithJoinTableBinderSpec extends HibernateGormDatastoreSpec { CompositeIdentifierToManyToOneBinder compositeIdentifierToManyToOneBinder = Mock(CompositeIdentifierToManyToOneBinder) SimpleValueColumnFetcher simpleValueColumnFetcher = Mock(SimpleValueColumnFetcher) CollectionForPropertyConfigBinder collectionForPropertyConfigBinder = Mock(CollectionForPropertyConfigBinder) + SimpleValueColumnBinder simpleValueColumnBinder = new SimpleValueColumnBinder() + ColumnConfigToColumnBinder columnConfigToColumnBinder = new ColumnConfigToColumnBinder() void setup() { def domainBinder = getGrailsDomainBinder() @@ -38,7 +42,9 @@ class CollectionWithJoinTableBinderSpec extends HibernateGormDatastoreSpec { enumTypeBinder, compositeIdentifierToManyToOneBinder, simpleValueColumnFetcher, - collectionForPropertyConfigBinder + collectionForPropertyConfigBinder, + simpleValueColumnBinder, + columnConfigToColumnBinder ) } diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderSpec.groovy index 27e9fb780f..5b718a0b25 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/secondpass/UnidirectionalOneToManyBinderSpec.groovy @@ -5,8 +5,10 @@ import grails.persistence.Entity import org.grails.orm.hibernate.cfg.GrailsDomainBinder import org.grails.orm.hibernate.cfg.GrailsHibernatePersistentEntity import org.grails.orm.hibernate.cfg.domainbinding.binder.CollectionForPropertyConfigBinder +import org.grails.orm.hibernate.cfg.domainbinding.binder.ColumnConfigToColumnBinder import org.grails.orm.hibernate.cfg.domainbinding.binder.CompositeIdentifierToManyToOneBinder import org.grails.orm.hibernate.cfg.domainbinding.binder.EnumTypeBinder +import org.grails.orm.hibernate.cfg.domainbinding.binder.SimpleValueColumnBinder import org.grails.orm.hibernate.cfg.domainbinding.hibernate.HibernateOneToManyProperty import org.grails.orm.hibernate.cfg.domainbinding.util.BackticksRemover import org.grails.orm.hibernate.cfg.domainbinding.util.ColumnNameForPropertyAndPathFetcher @@ -52,7 +54,9 @@ class UnidirectionalOneToManyBinderSpec extends HibernateGormDatastoreSpec { enumTypeBinder, compositeIdentifierToManyToOneBinder, simpleValueColumnFetcher, - collectionForPropertyConfigBinder + collectionForPropertyConfigBinder, + new SimpleValueColumnBinder(), + new ColumnConfigToColumnBinder() ) binder = new UnidirectionalOneToManyBinder(collectionWithJoinTableBinder) }
