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 de2fd8c24867968577e5660b1efd75de72f39a45 Author: Walter Duque de Estrada <[email protected]> AuthorDate: Fri Feb 13 23:36:07 2026 -0600 Refactor BasicValueIdCreator to internally instantiate BasicValue. - BasicValueIdCreator: Updated getBasicValueId to accept MetadataBuildingContext and Table, instantiating BasicValue internally. - SimpleIdBinder: Updated call site to pass required context and table. - Updated test specifications to align with the new getBasicValueId signature. --- .../orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.java | 2 +- .../hibernate/cfg/domainbinding/util/BasicValueIdCreator.java | 3 ++- .../hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy | 10 +++++----- .../orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy | 4 ++-- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.java index 2fc0853ebd..c6cfb69cd0 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/SimpleIdBinder.java @@ -56,7 +56,7 @@ public class SimpleIdBinder { // create the id value BasicValueIdCreator idCreator = this.basicValueIdCreator != null ? this.basicValueIdCreator : new BasicValueIdCreator(jdbcEnvironment); - BasicValue id = idCreator.getBasicValueId(mappedId, domainClass, new BasicValue(metadataBuildingContext, table), useSequence); + BasicValue id = idCreator.getBasicValueId(metadataBuildingContext, table, mappedId, domainClass, useSequence); var identifier = domainClass.getIdentity(); if (mappedId != null) { diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java index d2c2cbd01d..74a75da39d 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/util/BasicValueIdCreator.java @@ -31,7 +31,8 @@ public class BasicValueIdCreator { } - public BasicValue getBasicValueId(Identity mappedId, GrailsHibernatePersistentEntity domainClass, BasicValue id, boolean useSequence) { + public BasicValue getBasicValueId(MetadataBuildingContext metadataBuildingContext, Table table, Identity mappedId, GrailsHibernatePersistentEntity domainClass, boolean useSequence) { + BasicValue id = new BasicValue(metadataBuildingContext, table); // create a BasicValue for the specific entity table (do not reuse the prototype directly because table differs) String generatorName = Identity.determineGeneratorName(mappedId, useSequence); id.setCustomIdGeneratorCreator(context -> createGenerator(mappedId, domainClass, context, generatorName)); diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy index 0f92b72999..60c136c2d7 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreatorSpec.groovy @@ -49,7 +49,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(mappedId, domainClass, basicValue, useSequence) + BasicValue id = creator.getBasicValueId(metadataBuildingContext, table, mappedId, domainClass, useSequence) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -78,7 +78,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(null, domainClass, basicValue, false) + BasicValue id = creator.getBasicValueId(metadataBuildingContext, table, null, domainClass, false) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -94,7 +94,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(null, domainClass, basicValue, true) + BasicValue id = creator.getBasicValueId(metadataBuildingContext, table, null, domainClass, true) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -112,7 +112,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(mappedId, domainClass, basicValue, true) + BasicValue id = creator.getBasicValueId(metadataBuildingContext, table, mappedId, domainClass, true) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -129,7 +129,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(mappedId, domainClass, basicValue, false) + BasicValue id = creator.getBasicValueId(metadataBuildingContext, table, mappedId, domainClass, false) def generatorCreator = id.getCustomIdGeneratorCreator() generatorCreator.createGenerator(context) diff --git a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy index 9a5b103935..28f1179784 100644 --- a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy +++ b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinderSpec.groovy @@ -43,8 +43,8 @@ class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { // Use a Mock for BasicValueIdCreator and return a BasicValue based on the currentTable basicValueIdCreator = Mock(BasicValueIdCreator) - basicValueIdCreator.getBasicValueId(_, _, _, _) >> { Identity id, GrailsHibernatePersistentEntity domainClass, BasicValue val, boolean useSeq -> - return val + basicValueIdCreator.getBasicValueId(_, _, _, _, _) >> { MetadataBuildingContext ctx, Table table, Identity id, GrailsHibernatePersistentEntity domainClass, boolean useSeq -> + return new BasicValue(ctx, table) } // Mock the collaborators that can be safely mocked
