Spring JPA не может передать параметр в кавычки - PullRequest
0 голосов
/ 08 февраля 2020

Я пытаюсь выполнить запрос к PostgreSQL, который выглядит следующим образом:

@Query(value = "SELECT t FROM Tasks t WHERE daterange(t.date_from, t.date_to) && daterange '(:dateFrom, :dateTo)'", nativeQuery = true)
Page<Task> findTest(@Param("dateFrom") String dateFrom,
                        @Param("dateTo") String dateFrom,
                        Pageable pageable);

в результирующих значениях dateFrom и dateTo, не передаваемых в :dateFrom и :dateTo из-за одинарных кавычек. :dateFrom и :dateTo выглядит как струны. Если я удаляю кавычки, параметры передаются нормально, но запрос, конечно, недействителен. Так есть ли способ передать значения в кавычки (:dateFrom, :dateTo)?

1 Ответ

0 голосов
/ 09 февраля 2020

Запрос не работает без кавычек, потому что вы пытаетесь получить данные с чем-то вроде этого:

получить задачи ГДЕ дата> 2015 И дата> 2014

В принципе, если вы пытаетесь получить задание с 1 июня 2014 года, оно будет работать нормально, но тогда date > 2015 не будет правдой. Поэтому я предлагаю вам изменить && на <@, таким образом, если я понял ваше требование, диапазон дат задачи содержится в диапазоне, построенном с параметрами.

Здесь - несколько хороших операторов для типов диапазона.

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