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 7be99fd93ca0a0c5fe1cd10e47f29fb0cfbbe41c Author: Walter B Duque de Estrada <[email protected]> AuthorDate: Fri Jan 30 09:34:07 2026 -0600 progress --- .../cfg/domainbinding/BasicValueIdCreator.java | 5 +---- .../cfg/domainbinding/SimpleIdBinder.java | 5 ++++- .../domainbinding/BasicValueIdCreatorSpec.groovy | 23 +++++----------------- .../cfg/domainbinding/SimpleIdBinderSpec.groovy | 20 ++++++++++--------- 4 files changed, 21 insertions(+), 32 deletions(-) diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java index cbb91964c4..9e9efa7505 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/BasicValueIdCreator.java @@ -41,12 +41,9 @@ public class BasicValueIdCreator { } - public BasicValue getBasicValueId(RootClass entity, Identity mappedId, boolean useSequence) { + public BasicValue getBasicValueId(Identity mappedId, boolean useSequence) { // create a BasicValue for the specific entity table (do not reuse the prototype directly because table differs) String generatorName = determineGeneratorName(mappedId, useSequence); - if (mappedId != null && mappedId.getName() == null) { - mappedId.setName(entity.getEntityName()); - } id.setCustomIdGeneratorCreator(context -> createGenerator(mappedId, context, generatorName)); return id; } diff --git a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java index 8baa96854b..45f2cb4202 100644 --- a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java +++ b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/SimpleIdBinder.java @@ -57,7 +57,10 @@ public class SimpleIdBinder { // create the id value BasicValueIdCreator idCreator = this.basicValueIdCreator != null ? this.basicValueIdCreator : new BasicValueIdCreator(metadataBuildingContext, jdbcEnvironment, domainClass, entity); - BasicValue id = idCreator.getBasicValueId(entity, mappedId, useSequence); + if (mappedId != null && mappedId.getName() == null) { + mappedId.setName(entity.getEntityName()); + } + BasicValue id = idCreator.getBasicValueId(mappedId, useSequence); Property idProperty = new Property(); idProperty.setName(identifier.getName()); 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 7ed64f7fb4..4ea026aa8b 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 @@ -46,7 +46,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(entity, mappedId, useSequence) + BasicValue id = creator.getBasicValueId(mappedId, useSequence) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -74,7 +74,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(entity, null, false) + BasicValue id = creator.getBasicValueId(null, false) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -89,7 +89,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(entity, null, true) + BasicValue id = creator.getBasicValueId(null, true) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -106,7 +106,7 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(entity, mappedId, true) + BasicValue id = creator.getBasicValueId(mappedId, true) def generatorCreator = id.getCustomIdGeneratorCreator() Generator generator = generatorCreator.createGenerator(context) @@ -122,24 +122,11 @@ class BasicValueIdCreatorSpec extends HibernateGormDatastoreSpec { def context = Mock(GeneratorCreationContext) when: - BasicValue id = creator.getBasicValueId(entity, mappedId, false) + BasicValue id = creator.getBasicValueId(mappedId, false) def generatorCreator = id.getCustomIdGeneratorCreator() generatorCreator.createGenerator(context) then: 1 * grailsSequenceWrapper.getGenerator("custom", context, mappedId, _, jdbcEnvironment) >> Mock(Generator) } - - def "should set entity name on mappedId if it is null"() { - given: - Identity mappedId = new Identity() - mappedId.setGenerator(GrailsSequenceGeneratorEnum.IDENTITY.toString()) - entity.setEntityName("MyEntity") - - when: - creator.getBasicValueId(entity, mappedId, false) - - then: - mappedId.getName() == "MyEntity" - } } 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 42df9d0972..4015da0d1a 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 @@ -11,6 +11,7 @@ import org.hibernate.mapping.PrimaryKey import org.hibernate.mapping.RootClass import org.hibernate.mapping.Table import spock.lang.Unroll +import org.grails.orm.hibernate.cfg.domainbinding.generator.GrailsSequenceGeneratorEnum class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { @@ -19,6 +20,7 @@ class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { def simpleValueBinder def propertyBinder def basicValueIdCreator + Table currentTable def simpleIdBinder @@ -26,10 +28,10 @@ class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { metadataBuildingContext = getGrailsDomainBinder().getMetadataBuildingContext() jdbcEnvironment = getGrailsDomainBinder().getJdbcEnvironment() - // Use a Mock for BasicValueIdCreator and return a BasicValue based on the RootClass table + // Use a Mock for BasicValueIdCreator and return a BasicValue based on the currentTable basicValueIdCreator = Mock(BasicValueIdCreator) - basicValueIdCreator.getBasicValueId(*_) >> { RootClass rc, Identity id, boolean useSeq -> - new BasicValue(metadataBuildingContext, rc.getTable()) + basicValueIdCreator.getBasicValueId(*_) >> { Identity id, boolean useSeq -> + new BasicValue(metadataBuildingContext, currentTable) } // Mock the collaborators that can be safely mocked @@ -51,11 +53,11 @@ class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { } } def rootClass = new RootClass(metadataBuildingContext) - def table = new Table("TEST_TABLE") - rootClass.setTable(table) + currentTable = new Table("TEST_TABLE") + rootClass.setTable(currentTable) when: - simpleIdBinder.bindSimpleId(testProperty, rootClass, new Identity(generator: 'identity')) + simpleIdBinder.bindSimpleId(testProperty, rootClass, new Identity(generator: GrailsSequenceGeneratorEnum.IDENTITY.toString())) then: 1 * simpleValueBinder.bindSimpleValue(testProperty, null, _, "") @@ -79,11 +81,11 @@ class SimpleIdBinderSpec extends HibernateGormDatastoreSpec { } } def rootClass = new RootClass(metadataBuildingContext) - def table = new Table("TEST_TABLE") - rootClass.setTable(table) + currentTable = new Table("TEST_TABLE") + rootClass.setTable(currentTable) when: - simpleIdBinder.bindSimpleId(testProperty, rootClass, new Identity(generator: 'sequence', params: [sequence: 'SEQ_TEST'])) + simpleIdBinder.bindSimpleId(testProperty, rootClass, new Identity(generator: GrailsSequenceGeneratorEnum.SEQUENCE.toString(), params: [sequence: 'SEQ_TEST'])) then: 1 * simpleValueBinder.bindSimpleValue(testProperty, null, _, "")
