Before Version 6.2 it was possible to just write the primary key (mostly a long) of the type referenced in CriteriaBuilder's equal, in, ...-Methods. Since Version 6.2 this no longer works. This is mentioned in the https://docs.jboss.org/hibernate/orm/6.2/migration-guide/migration-guide.html#query-path-comparison however I assume that the Primary Keys have been overlooked. e.g. the following Code fails
...
final CriteriaBuilder cb = this.getEntityManager().getCriteriaBuilder();
final CriteriaQuery<UserAuthLog> cq = cb.createQuery(UserAuthLog.class);
final Root<UserAuthLog> root = cq.from(UserAuthLog.class);
cq.select(root);
cq.where(cb.equal(root.get(UserAuthLog_.user), userId));
...
where the class UserAuthLog looks like this:
and UserDetail like this
with the following exception
Also consider that some methods like in use collections with primary keys. The changes were done here: https://github.com/hibernate/hibernate-orm/pull/6189 / https://hibernate.atlassian.net/browse/HHH-15802 If this can’t be fixed it would be great if could somehow disable this early query path comparison, so that we don’t have to check our entire DAL-Layer (we are talking about thousands of lines of code) for problems. |