Hi all,

The open Hibernate alias and join PRs overlap in the same few files and 
disagree on one rule, so they could not land in any order. I consolidated four 
of them (#16773, #16866, #16863 and #16559) into one Hibernate 7 branch with 
every author's commits kept through merge commits, and put the shared core part 
on a Hibernate 5 branch for 7.0.x. Both are PRs now: 
https://github.com/apache/grails-core/pull/16890 (7.0.x, merges first) and 
https://github.com/apache/grails-core/pull/16891 (8.0.x). #16853, the Hibernate 
5 sort, stays on its own.

What we found:
- Hibernate 5 is a weak reference for these cases. In the combinations we 
tested it throws for 71% and contradicts itself for 7%.
- DetachedCriteria dropped a second alias of one association (#16851). The fix 
is opt-in per datastore, so Mongo, Neo4j and the simple datastore behave as 
before.

Decided in https://github.com/apache/grails-core/issues/16889: blocks without 
an alias share one join, as in Hibernate 5. The first alias of an association 
path shares it, and every later alias has its own join, even in another block. 
An order by a path in a block that declares an alias for it sorts by that alias.

Status: the datamapping-core, Hibernate 5 and Hibernate 7 suites and the style 
checks pass on both branches. The original PRs stay open until the new ones are 
reviewed.

Questions: any objection to that rule, and any reason not to close the 
originals once the new PRs are merged?

Walter

Reply via email to