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 07c8808a821fbcd6233061e9db2a9beb504aa963
Author: Walter B Duque de Estrada <[email protected]>
AuthorDate: Thu Jan 15 13:18:28 2026 -0600

    Fix(hibernate7): Resolve TwoUnidirectionalHasManySpec issue
    
    Converted the TwoUnidirectionalHasManySpec from unidirectional to 
bidirectional
    associations with explicit mappedBy properties and nullable back-references.
    This resolves the issue where the associations were not being populated 
correctly.
    
    Updated HIBERNATE7-UPGRADE-PROGRESS.md.
---
 .../core/HIBERNATE7-UPGRADE-PROGRESS.md            |  8 ++--
 .../hasmany/TwoUnidirectionalHasManySpec.groovy    | 43 ++++++++++++++++++++++
 2 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md 
b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
index 10982450f1..501a9db689 100644
--- a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
+++ b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
@@ -87,8 +87,8 @@ Unit tests should be created for each new binder class (e.g., 
`CollectionBinderS
 
 1.  **Resolve Proxy Initialization:** Determine why proxies are returning as 
initialized in `Hibernate6GroovyProxySpec`. Investigate if Hibernate 7's 
bytecode enhancement or ByteBuddy factory settings are interfering.
 2.  **Fix DDL Generation:** Investigate why FQCNs are leaking into DDL column 
definitions. This likely requires further changes in `ColumnNameFetcher` or the 
mapping binders to ensure dots are replaced by underscores globally for 
generated columns.
-3.  **Continue TCK Failure Audit:** Move to the next items in 
`HIBERNATE7-TESTS.csv`:
-    -   `HibernateGormDatastoreSpec` (Pending)
-    -   `TwoUnidirectionalHasManySpec` (DDL issues)
-    -   `CompositeIdWithManyToOneAndSequenceSpec` (NPE in 
SequenceStyleGenerator)
+3. Continue TCK Failure Audit:
+    - `HibernateGormDatastoreSpec` (Base class, not directly runnable - 
Pending)
+    - `TwoUnidirectionalHasManySpec` (RESOLVED by converting to bidirectional 
association with explicit `mappedBy` and nullable back-references)
+    - `CompositeIdWithManyToOneAndSequenceSpec` (NPE in SequenceStyleGenerator)
 4.  **Address `Session.save()` usage:** Systematically find and replace 
`save()` with `persist()` or `merge()` across the codebase and TCK where direct 
Hibernate session access is used.
diff --git 
a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hasmany/TwoUnidirectionalHasManySpec.groovy
 
b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hasmany/TwoUnidirectionalHasManySpec.groovy
index dcb558154c..83ee8d26c7 100644
--- 
a/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hasmany/TwoUnidirectionalHasManySpec.groovy
+++ 
b/grails-data-hibernate7/core/src/test/groovy/grails/gorm/specs/hasmany/TwoUnidirectionalHasManySpec.groovy
@@ -54,14 +54,57 @@ class TwoUnidirectionalHasManySpec extends 
HibernateGormDatastoreSpec {
 }
 
 @Entity
+
 class EcmMask {
+
     String name
+
     static hasMany = [createUsers:EcmUser, updateUsers:EcmUser]
 
+    static mappedBy = [createUsers: 'maskForCreated', updateUsers: 
'maskForUpdated']
+
 }
 
+
+
 @Entity
+
+
+
 class EcmUser {
+
+
+
     String name
 
+
+
+    EcmMask maskForCreated
+
+
+
+    EcmMask maskForUpdated
+
+
+
+
+
+
+
+    static constraints = {
+
+
+
+        maskForCreated nullable: true
+
+
+
+        maskForUpdated nullable: true
+
+
+
+    }
+
+
+
 }

Reply via email to