Вызов PostgreSQL функций системной информации в Hibernate JPQL - PullRequest
0 голосов
/ 20 марта 2020

Я запускаю приложение Spring, которое использует Hibernate при поддержке Postgres. Мне нужно вызвать Postgres системную функцию pg_xact_commit_timestamp (см. https://www.postgresql.org/docs/9.5/functions-info.html) в моем запросе. Вызов его в нативном запросе работает просто отлично, но есть ли способ выполнить sh без использования нативного запроса? Собственный запрос выглядит примерно так, где from и to являются временными метками:

@Query(
  nativeQuery = true,
  value = 
    ""
      + "select a.* from my_db.some_relation_a a"
      + "   join my_db.some_relation_b b on b.relation_a_id = a.id"
      + "   where pg_xact_commit_timestamp(a.xmin) between :from and :to"
);

Когда я пытаюсь использовать pg_xact_commit_timestamp(a.xmin) в не нативном запросе, он думает, что это выражение пути и может не интерпретировать это. Мне нужно уточнить это, потому что при присоединении TX ID является неоднозначным. Я обнаружил, что JPQL имеет синтаксис FUNCTION, который можно использовать для вызова функций базовой БД, но я не уверен, как правильно передать идентификатор TX.

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