Подзапрос с сопоставлением счетчиков с использованием hibernate - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь использовать springboot jpa для построения динамического запроса, как показано ниже который прекрасно работает в консоли h2 db, но не работает (ошибка проверки запроса) через jpa

Запрос, который работает в обоих (sql и hibernate)

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, есть ли лучший способ сделать это, например критерии Query и т. Д.?

...