как использовать как любой с массивом строки JPA - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь проконсультироваться с использованием HIBERNATE и JPA.

это собственный запрос и он работает на postgres

select * from table tb where upper(tb.column1) like any(array[?1]);

, но когда я запускаю с использованием jpa, я получаю следующую ошибку

[42883] ОШИБКА: оператор не существует: текст ~~ запись Dica: ни один оператор не соответствует данному имени и типу (аргументам) аргумента.Возможно, вам потребуется добавить явные приведения типов.

Я вижу, что это происходит из-за того, что hibernate запускает запрос следующим образом:

select * from table tb where upper(tb.column1) like any(array[('%text1%', '%texte2%')]);

, и он должен быть без '')'вот так:

select * from table tb where upper(tb.column1) like any(array['%text1%', '%texte2%']);

Вот как я работаю на JPA

@Query(nativeQuery = true, value = "SELECT column1 FROM table1 WHERE column1 LIKE ANY(ARRAY[?1])")
List<String> example(List<String> valores);

Как я могу это решить ....

...