JPQL: Как я могу использовать строку в качестве параметра для вызова хранимой функции? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть сохраненная функция с именем validate_row, которая берет строку из таблицы и возвращает логическое значение, и я хочу выполнить такой запрос:

SELECT * FROM table T WHERE validate_row(T) = true

Выполнение этого запроса в PostgreSQL напрямую работает,но следующая аннотация JPQL будет использовать первичный ключ таблицы в качестве параметра функции вместо строки:

@Query("SELECT someDAO from table T WHERE function('validate_row', T) = true")

Есть идеи, как сделать так, чтобы строка использовалась в качестве параметра?

1 Ответ

0 голосов
/ 31 октября 2019

По умолчанию @Query выполняет запрос как JPQL. Таким образом, чтобы выполнить запрос как собственный SQL, используйте nativeQuery = true.

Попробуйте:

@Query(value = "SELECT * FROM table t WHERE validate_row(t) = true", nativeQuery = true)
...