This is an automated email from the ASF dual-hosted git repository.

borinquenkid pushed a commit to branch 8.0.x-hibernate7-dev
in repository https://gitbox.apache.org/repos/asf/grails-core.git

commit 31bbf8ca32cd67be8e60e831afe86b8cc4d5b0a3
Author: Walter Duque de Estrada <[email protected]>
AuthorDate: Wed Mar 11 22:41:57 2026 -0500

    hibernate 7:  GrailsHibernatePersistentEntity.java: Added a default 
getHibernateIdentity()
---
 .../cfg/domainbinding/binder/IdentityBinder.java   |  5 ++---
 .../RootPersistentClassCommonValuesBinder.java     |  2 +-
 .../hibernate/GrailsHibernatePersistentEntity.java |  4 ++++
 .../cfg/domainbinding/IdentityBinderSpec.groovy    | 26 +++++++++++++---------
 4 files changed, 23 insertions(+), 14 deletions(-)

diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java
index 5bd8920266..0aadee5ad2 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/IdentityBinder.java
@@ -38,10 +38,9 @@ public class IdentityBinder {
         this.compositeIdBinder = compositeIdBinder;
     }
 
-    public void bindIdentity(
-            @Nonnull GrailsHibernatePersistentEntity domainClass, RootClass 
root, Mapping gormMapping) {
+    public void bindIdentity(@Nonnull GrailsHibernatePersistentEntity 
domainClass, RootClass root) {
 
-        HibernateIdentity id = gormMapping != null ? gormMapping.getIdentity() 
: null;
+        var id = domainClass.getHibernateIdentity();
         if (id instanceof CompositeIdentity || (id == null && 
domainClass.getCompositeIdentity() != null)) {
             compositeIdBinder.bindCompositeId(domainClass, root, 
(CompositeIdentity) id);
         } else {
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
index 34650efda0..bab7999c2b 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/binder/RootPersistentClassCommonValuesBinder.java
@@ -98,7 +98,7 @@ public class RootPersistentClassCommonValuesBinder {
                     + root.getTable().getName());
         }
 
-        identityBinder.bindIdentity(domainClass, root, gormMapping);
+        identityBinder.bindIdentity(domainClass, root);
         versionBinder.bindVersion(domainClass.getVersion(), root);
         root.createPrimaryKey();
         classPropertiesBinder.bindClassProperties(domainClass, root);
diff --git 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java
 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java
index 8208e46249..6f4f96bb8f 100644
--- 
a/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java
+++ 
b/grails-data-hibernate7/core/src/main/groovy/org/grails/orm/hibernate/cfg/domainbinding/hibernate/GrailsHibernatePersistentEntity.java
@@ -107,6 +107,10 @@ public interface GrailsHibernatePersistentEntity extends 
PersistentEntity {
                 .collect(Collectors.toSet());
     }
 
+    default HibernateIdentity getHibernateIdentity() {
+        return 
Optional.ofNullable(getMappedForm()).map(Mapping::getIdentity).orElse(null);
+    }
+
     @Override
     HibernatePersistentProperty getIdentity();
 
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy
index 673b3799af..be605861a2 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/org/grails/orm/hibernate/cfg/domainbinding/IdentityBinderSpec.groovy
@@ -37,7 +37,8 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec {
         domainClass.getCompositeIdentity() >> null
 
         when:
-        binder.bindIdentity(domainClass, root, null)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         1 * simpleIdBinder.bindSimpleId(domainClass, root, null, _)
@@ -52,7 +53,8 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec {
         domainClass.getCompositeIdentity() >> compositeProps
 
         when:
-        binder.bindIdentity(domainClass, root, null)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         1 * compositeIdBinder.bindCompositeId(domainClass, root, null)
@@ -65,10 +67,11 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec 
{
         def mappings = Mock(InFlightMetadataCollector)
         def gormMapping = Mock(Mapping)
         def compositeIdentity = Mock(CompositeIdentity)
-        gormMapping.getIdentity() >> compositeIdentity
+        domainClass.getHibernateIdentity() >> compositeIdentity
 
         when:
-        binder.bindIdentity(domainClass, root, gormMapping)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         1 * compositeIdBinder.bindCompositeId(domainClass, root, 
compositeIdentity)
@@ -81,14 +84,15 @@ class IdentityBinderSpec extends HibernateGormDatastoreSpec 
{
         def mappings = Mock(InFlightMetadataCollector)
         def gormMapping = Mock(Mapping)
         def identity = new Identity(name: "foo")
-        gormMapping.getIdentity() >> identity
+        domainClass.getHibernateIdentity() >> identity
         def identifierProp = Mock(HibernatePersistentProperty)
         domainClass.getHibernatePropertyByName("foo") >> identifierProp
         domainClass.getIdentity() >> identifierProp
         domainClass.getName() >> "MyEntity"
 
         when:
-        binder.bindIdentity(domainClass, root, gormMapping)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         1 * simpleIdBinder.bindSimpleId(domainClass, root, identity, _)
@@ -101,13 +105,14 @@ class IdentityBinderSpec extends 
HibernateGormDatastoreSpec {
         def mappings = Mock(InFlightMetadataCollector)
         def gormMapping = Mock(Mapping)
         def identity = new Identity(name: "MyEntity")
-        gormMapping.getIdentity() >> identity
+        domainClass.getHibernateIdentity() >> identity
         def identifierProp = Mock(HibernatePersistentProperty)
         domainClass.getIdentity() >> identifierProp
         domainClass.getName() >> "MyEntity"
 
         when:
-        binder.bindIdentity(domainClass, root, gormMapping)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         1 * simpleIdBinder.bindSimpleId(domainClass, root, identity, _)
@@ -121,13 +126,14 @@ class IdentityBinderSpec extends 
HibernateGormDatastoreSpec {
         def mappings = Mock(InFlightMetadataCollector)
         def gormMapping = Mock(Mapping)
         def identity = new Identity()
-        gormMapping.getIdentity() >> identity
+        domainClass.getHibernateIdentity() >> identity
         def identifierProp = Mock(HibernatePersistentProperty)
         domainClass.getIdentity() >> identifierProp
         domainClass.getName() >> "MyEntity"
 
         when:
-        binder.bindIdentity(domainClass, root, gormMapping)
+        binder.bindIdentity(domainClass, root)
+
 
         then:
         identity.getName() == "MyEntity"

Reply via email to