需要帮助创建用于后续查询的过滤谓词
SELECT * FROM table
where
'test_value' IN (SELECT unnest(data_array));
OR
Select *
FROM public.table
where 'test_value' = ANY (data_array);
用于从Postgres数组中选择的JPA CriteriaBuilder。
表格格式
id ,
(char varying)
data_array
(text[])
我试图为上述查询创建过滤器,但发现很难使实际的查询过滤器正常工作。
Expression function = builder.function("unnest", String.class, root.get(criteria.getKey()));
更多信息:-
谓词具有代码
class FilterSpecificaion implements Specification {
public Predicate toPredicate(Root<T> root, CriteriaQuery<?> query, CriteriaBuilder builder) {...}
....
}
答案 0 :(得分:0)
我发现与Postgres 9.5兼容,我们具有更多内置函数。其中之一是“ array_positions”,我将其重新用于检查是否存在element。 https://www.postgresql.org/docs/9.5/functions-array.html