Не удалось выполнить запрос в платформе весенней загрузки - PullRequest
0 голосов
/ 08 апреля 2020
SELECT * FROM work_hour where start_time between '2020-04-06 23:03' and '2020-04-09 23:03';

Это работает, когда для search_path задано значение foo. Но я хочу использовать тот же запрос вместо строк, я хочу использовать параметры

Поэтому я использую эту аннотацию в своей сервисной функции:

@Query(value = "SELECT s FROM foo.work_hour s WHERE TO_TIMESTAMP(s.start_time,  'YYYY-MM-DD HH24:mi')\\:\\:timestamp BETWEEN :start_time\\:\\:timestamp AND now()\\:\\:timestamp", nativeQuery = true)

Но, похоже, это не работает.

There was an unexpected error (type=Internal Server Error, status=500). could not execute query; SQL [SELECT s FROM logines.work_hour s WHERE TO_TIMESTAMP(s.start_time, 'YYYY-MM-DD HH24:mi')::timestamp BETWEEN ?::timestamp AND now()::timestamp]; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query

org.postgresql.util.PSQLException: The column name id was not found in this ResultSet.

Как это можно сделать?

1 Ответ

0 голосов
/ 08 апреля 2020

Поскольку это собственный запрос, вам нужно использовать правильный (собственный) синтаксис SQL.

select s from work_hour s

приводит к результату с столбцом single , который является записью с несколькими полями. Но вам нужно несколько столбцов, поэтому вы должны использовать

select s.* 
from work_hour s

См. Разницу в выводе в этом онлайн-примере

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