Использовать временную метку функции postgres в JpaRepository - PullRequest
0 голосов
/ 23 декабря 2018

Я пытаюсь сгруппировать только по дате, столбец active_to является меткой времени, поэтому он также имеет время.Этот запрос работает в pgAdmin, но JpaRepository, похоже, имеет проблемы, даже если это собственный запрос.Как я могу изменить этот запрос для работы с использованием JpaRepository?

@Query(value = "SELECT o.active_to::timestamp::date, count(o) as sum from work_order o group by o.active_to::timestamp::date order by o.active_to::timestamp::date  asc limit 7", nativeQuery = true)

Я получаю эту ошибку:

org.postgresql.util.PSQLException: ERROR: syntax error at or near ":"
  Position: 19

1 Ответ

0 голосов
/ 23 декабря 2018

Вы не можете использовать: потому что это символ, который начинает именованный параметр.

Вы должны использовать приведение.

@Query(value = "SELECT cast(cast(o.active_to as timestamp) as date), count(o) as sum " +
               "from work_order o group by cast(cast(o.active_to as timestamp) as date) " +  
               "order by cast(cast(o.active_to as timestamp) as date) asc limit 7",
               nativeQuery = true)

Cast и :: похожи.Подробнее о здесь:

https://www.postgresql.org/docs/current/sql-expressions.html#SQL-SYNTAX-TYPE-CASTS

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