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
