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 
<[email protected]>
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

Reply via email to