JPA Criteria API:加入另一个查询

时间:2015-03-26 13:29:27

标签: java hibernate jpa jpql criteria-api

我正在尝试使用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返回内部选择的快照的所有其他属性。

我在构建内部选择方面取得了成功,但是如何使用连接将外部选择与内部选择结合起来?

或者,或许,有一种不同的方式来构建查询本身的方式,不包括子查询...

修改

类似的问题:jpa criteria-api: join with subselect

1 个答案:

答案 0 :(得分:1)

JPA不支持FROM子句中的子选择。一些JPA提供商可能会支持这一点。

例如EclipseLink: http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause