java - 如何像任何字符串 JPA 数组一样使用
问题描述
我正在尝试使用 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);
我该如何解决它......
解决方案
你可以尝试这样的事情:
select * from (select unnest([array]) as colum_text from [table]) as temporal where temporal.colum_text like '%[value to search]%'
推荐阅读
- javascript - 在 React 的道具更改上重新渲染子组件的最佳解决方案是什么?
- wordpress - Wordpress/ACF 将多个字段值合并为一个
- r - obj$bs_quants[[1]] 中的错误:下标超出 plot_bootstrap 函数的范围
- c# - 如何连接到数据库
- firebase - 我可以创建一个包含 fcm 消息的新活动吗?
- d3.js - d3.js 使用数据数组在线性到对数之间更改轴
- flutter - 如何将抽屉小部件放在右侧
- python - 如何在python中为单个数据框制作不同长度的列表?
- javascript - 如何仅将对象映射到第一级数组。JS
- r - 仅当另一列在 R 中具有良好值时,列的连续总和