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 7e8a276b540e618fba8015d47807bdfa6eaf0313
Author: Walter B Duque de Estrada <[email protected]>
AuthorDate: Fri Jan 16 11:58:26 2026 -0600

    update progress
---
 .../core/HIBERNATE7-UPGRADE-PROGRESS.md            | 25 ++++++++++------------
 1 file changed, 11 insertions(+), 14 deletions(-)

diff --git a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md 
b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
index 3186baf474..2b43a0c1d9 100644
--- a/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
+++ b/grails-data-hibernate7/core/HIBERNATE7-UPGRADE-PROGRESS.md
@@ -65,6 +65,15 @@ This document summarizes the approaches taken, challenges 
encountered, and futur
     - In `ManyToOneBinderSpec`, replaced `setCompositeIdentifier` with 
`setIdentity` and mocked `PropertyConfig` to handle `setUniqueWithinGroup`.
 - **Result:** Resolved these specific test failures.
 
+### 11. Fixes for `BasicValueIdCreatorSpec` and `SimpleIdBinderSpec`
+- **Issue:** `BasicValueIdCreatorSpec` failed with NPE in `NativeGenerator` 
and `SequenceStyleGenerator`. `SimpleIdBinderSpec` failed with mocking issues.
+- **Approach:**
+    - Created `GrailsIdentityGenerator` to encapsulate identity generation 
logic.
+    - Updated `BasicValueIdCreator` to use `GrailsIdentityGenerator` and 
`GrailsSequenceStyleGenerator`.
+    - Updated `BasicValueIdCreatorSpec` to mock `ServiceRegistry`, 
`JdbcEnvironment`, `IdentifierHelper`, and `SequenceSupport` to satisfy 
`SequenceStyleGenerator` dependencies.
+    - Updated `SimpleIdBinderSpec` to use real `BasicValueIdCreator` and 
`Table` instances instead of mocks, avoiding interaction verification issues on 
real objects.
+- **Result:** Resolved NPEs and mocking failures in these specs.
+
 ## Challenges & Failures
 
 ### 1. Proxy Initialization Behavior
@@ -72,15 +81,6 @@ This document summarizes the approaches taken, challenges 
encountered, and futur
 - **Attempts:** Tried `session.getReference()`, 
`session.byId().getReference()`, and using fresh sessions.
 - **Status:** Ongoing investigation. Debugging indicates that Hibernate 7's 
bytecode enhancement or session management might be reporting Groovy proxies as 
initialized even when they haven't fetched their target.
 
-### 2. SQL Syntax Errors in DDL (RESOLVED)
-- **Issue:** Several tests showed `JdbcSQLSyntaxErrorException` during schema 
creation due to dots in column names.
-- **Solution:** Centralized dot-to-underscore replacement in 
`NamingStrategyWrapper`.
-
-### 3. Missing Methods in Proxies (RESOLVED)
-- **Issue:** Hibernate 7 proxies no longer implement `isInitialized()` or 
`getInitialized()` directly on the proxy object.
-- **Solution:** Switched to `Hibernate.isInitialized(proxy)`.
-
-
 ## Strategy for GrailsDomainBinder Refactoring
 
 ### Goal
@@ -102,9 +102,6 @@ Unit tests should be created for each new binder class 
(e.g., `CollectionBinderS
 ## Future Steps
 
 1.  **Resolve Proxy Initialization:** Determine why proxies are returning as 
initialized in `Hibernate7GroovyProxySpec`. 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:
+2. 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.
+3.  **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.

Reply via email to