【发布时间】:2012-02-14 23:43:28
【问题描述】:
从 tbl 中选择 * WHERE version = (SELECT MAX(version) FROM tbl WHERE t2.entityId = t1.entityId)
Tbl 描述了不同版本的实体,其中 entityId 和版本的每个组合都是唯一的。我想找到每个 entityId 的最高版本(整行,而不仅仅是版本号)。这可以通过 Criteria API 实现吗?我见过的子查询的唯一用途只涉及使用“IN”而不是比较值。我也想过将子查询转换为复杂的 LEFT JOIN,但 Criteria API 不支持自定义 ON 语句。
这可能吗?由于查询是非常动态的,我宁愿避免使用 JPQL(如果它甚至可以使用 JPQL)。
【问题讨论】:
标签: hibernate jpa-2.0 criteria-api