You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@grails.apache.org by GitBox <gi...@apache.org> on 2026/10/21 02:37:07 UTC
[GH] (grails-core/fix/h7-shared-join-table-key-8.0.x): Workflow run "CI" is working again!
The GitHub Actions job "CI" on grails-core.git/fix/h7-shared-join-table-key-8.0.x has succeeded.
Run started by GitHub user borinquenkid (triggered by borinquenkid).
Head commit for run:
b2853301885176b5c629a734c34389bae41924e8 / Walter Duque de Estrada <wb...@mac.com>
fix(hibernate7): write the rows of unidirectional hasMany collections that share a join table
CollectionKeyColumnUpdater made the key of a unidirectional to-many not updatable when the owner had
several of them sharing one join table, the rule of issue 10811. Hibernate 7's collection persister
writes no rows for a collection whose key is not updatable, so every addTo* on such an owner was
dropped silently, even with failOnError. The key is now always updatable.
Hibernate creates the implicit unique key of the shared table for the first collection only, over
its key column and the element column, so a row of a later collection leaves that key column null
and two such rows for one element are duplicates on a database that treats nulls as equal in a
unique constraint. The new SharedJoinTableUniqueKeyBinder, run by GrailsSecondPass after the keys
are created, adds the key columns of every sharing collection to that unique key.
SharedJoinTableUniqueKeyBinderSpec pins the unique key of a shared table, of tables of their own and
of a bidirectional one-to-many; CollectionKeyColumnUpdaterSpec expects the shared-table key to be
updatable; MultipleUnidirectionalHasManySpec writes both collections of a shared table and one role
denied by two owners.
Fixes #16699
Report URL: https://github.com/apache/grails-core/actions/runs/39525947342
With regards,
GitHub Actions via GitBox