使用冬眠计数匹配的子查询

时间:2019-05-07 14:24:32

标签: sql hibernate spring-boot jpa

我正在尝试使用springboot jpa按照以下示例构建动态查询 在h2数据库控制台中效果很好,但通过jpa无法正常工作(查询验证失败)

查询在SQL和休眠模式下均适用

SELECT e.objectKey, COUNT(DISTINCT e.type) as cnt 
FROM Event e WHERE e.type NOT IN (SELECT eventType FROM StreamEventMap WHERE 
stage <> 'END') GROUP BY e.objectKey

但是现在我想使用COUNT的输出与另一个表进行比较,我只需要那些匹配的数字。

SELECT objectKey, cnt FROM 
  (SELECT e.objectKey, COUNT(DISTINCT e.type) as 
  cnt FROM Event e WHERE e.type IN (SELECT eventType FROM StreamEventMap WHERE 
  stage = 'END')  GROUP BY e.objectKey) 
WHERE cnt = (SELECT COUNT(eventType) FROM StreamEventMap WHERE stage='END')

所以我将其放在子查询中,并且它停止工作

我正在将JPARepository与@Query注释一起使用,还有没有更好的方法来做到这一点,例如criteriaQuery等?

0 个答案:

没有答案