我正在尝试使用JPA Criteria API构建此查询
SELECT s FROM snapshot s
INNER JOIN (
SELECT collector_id, entity_id, MAX(timestamp) AS "timestamp"
FROM snapshot GROUP BY collector_id, entity_id
) AS j ON s.TIMESTAMP = j.TIMESTAMP AND s.collector_id = j.collector_id AND s.entity_id = j.entity_id;
内部选择应该有3个属性来识别快照,然后外部选择将获得基于3返回内部选择的快照的所有其他属性。
我在构建内部选择方面取得了成功,但是如何使用连接将外部选择与内部选择结合起来?
或者,或许,有一种不同的方式来构建查询本身的方式,不包括子查询...
修改
答案 0 :(得分:1)
JPA不支持FROM子句中的子选择。一些JPA提供商可能会支持这一点。
例如EclipseLink: http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause