【发布时间】:2019-08-05 21:48:50
【问题描述】:
我正在尝试使用 HIBERNATE 和 JPA 进行咨询。
这是本机查询,适用于 postgres
select * from table tb where upper(tb.column1) like any(array[?1]);
但是当我使用 jpa 运行时出现以下错误
[42883] 错误:运算符不存在:文本 ~~ 记录 Dica:没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。
我看到这是因为休眠运行这样的查询:
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);
我该如何解决....
【问题讨论】:
-
ANY 运算符前面必须有以下比较运算符之一 =、、 和 这就是不起作用的原因
标签: java postgresql hibernate jpa sql-like