我正在使用jpa的criteriabuilder,并且我想在jsonb列中查找json字段的值。 jsonb看起来像这样:
[{"field1":"value1","field2":"value2"},{"field3":"value3","field4":"value4"}]
我开始创建谓词,但出现错误。
predicates.add( builder.like(
builder.function("JSON_EXTRACT", String.class, root1.get("jsonBColumn"),
builder.literal("\"value3\"")), "%" + searchValue + "%"));
我遇到的错误是
org.postgresql.util.PSQLException:错误:函数json_extract(jsonb, 字符变化)不存在提示:没有函数与给定的匹配 名称和参数类型。您可能需要添加显式类型转换。
有人可以帮忙吗?
答案 0 :(得分:0)
这将有助于:
`predicate.getExpressions()。add(cb.like(cb.function(“ jsonb_extract_path_text”,String.class,root.get(“ jsonBColumn”),cb.literal(this.searchKey)),“%” + this.searchValue +“%”));