Я получил синтаксическую ошибку при попытке вызвать функцию JPA - PullRequest
0 голосов
/ 11 июля 2019

Когда я пытаюсь вызвать JPA-функцию в этом операторе, я получаю сообщение об ошибке: синтаксическая ошибка в или около ":"

 public interface BcaTestRepository extends CrudRepository<InBodyBCA, Long> {
  @Query(value = "SELECT * FROM in_body_bca bca WHERE person_id = :personId " +
      "AND to_timestamp(bca.datetimes::text, 'YYYYMMDDHH24MISS')  BETWEEN :startRange AND :endRange",
      nativeQuery = true)
  List<InBodyBCA> findAllByPersonId(@Param("personId") Long personId,
                                    @Param("startRange") LocalDateTime startRange,
                                    @Param("endRange") LocalDateTime endRange);

Но в PgAdmin запрос работает нормально

SELECT id, to_timestamp(datetimes::text, 'YYYYMMDDHH24MISS') as dt FROM in_body_bca WHERE to_date(datetimes::text, 'YYYYMMDDHH24MISS')
BETWEEN '2018-05-07' AND '2019-05-07' ORDER BY to_date(datetimes::text, 'YYYYMMDDHH24MISS') DESC ;

1 Ответ

0 голосов
/ 11 июля 2019

Здесь вы используете двойное двоеточие: bca.datetimes::text. JPA будет искать text имя переменной.

Вам нужно сбежать от него:

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