Как избежать дублирования вызова функции в этом запросе JPA / JPQL? - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть следующий запрос JPA, который усекает даты до полного часа и считает их:

SELECT a.alertconfiguration.id.id,
       date_trunc('hour', a.date) AS fromDate,
       count(*)                   AS count
FROM   alert a
GROUP  BY a.alertconfiguration.id.id,
          a.alertlevel,
          date_trunc('hour', a.date)

Я выполняю это в приложении Spring Boot с использованием Hibernate.Работает нормально.Но я не хочу дублировать вызов функции на date_trunc.Я попытался сослаться на fromDate в предложении GROUP BY, но затем я получил исключение org.postgresql.util.PSQLException: ERROR: column "fromdate" does not exist

http://hibernate.atlassian.net/browse/HHH-9301, в котором также говорится, что невозможно сослаться на псевдонимы в группе по предложению.

Как я могу переписать свой запрос без повторного вызова функции?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Можете ли вы попробовать использовать 2 вместо date_trunc ('hour', a.date) в выражении group by, поскольку fromdate - это 2-й столбец

0 голосов
/ 27 ноября 2018

Hibernate не работает с псевдонимами в group by или каких-либо агрегатных функциях.И как вы увидите в сгенерированном SQL-запросе, псевдоним отличается от того, который вы назначили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...