SELECT * FROM tbl 版本=(SELECT MAX(版本)FROM tbl WHERE t2.entityId = t1.entityId)
Tbl描述了不同版本的实体,其中entityId和version的每个组合都是唯一的。我想找到每个entityId的最高版本(整行,而不仅仅是版本号)。这可能与Criteria API一起使用吗?我见过的子查询的唯一用途只涉及使用“IN”而不是比较值。我还想过将子查询转换为复杂的LEFT JOIN,但Criteria API不支持自定义的ON语句。
这可能吗?由于查询非常动态,我宁愿避免使用JPQL(如果甚至可以使用JPQL)。
答案 0 :(得分:0)
使用criteriaBuilder.in(路径).value(子查询)解决。