【发布时间】:2019-07-11 19:04:24
【问题描述】:
我正在尝试使用 Criteria Builder(LIKE) 构建查询,以在 JSONARRAY 字段中查找字符串,如下所示:
[
{
"family_class": "Electric",
"family_name": "lightBulb"
},
{
"family_class": "Others",
"family_name": "Oil"
}
]
一个选项是查找 family_name 属性,或者检查它是否包含字符串。
if (residues != null && residues.length > 0) {
List<Predicate> predicates = new ArrayList<Predicate>();
for (String residue : residues) {
predicates.add(cb.like(root.get("jsonColumn"), residue.toLowerCase()));
}
cr.select(root).where(predicates.toArray(new Predicate[] {}));
Query<SyncCollectionPoints> q = sess.createQuery(cr);
List<SyncCollectionPoints> result= q.getResultList();
这是我得到的错误:
Unrecognized token 'oil': was expecting ('true', 'false' or 'null')
我只想返回 jsonColumn 字段中包含该字符串的行。
【问题讨论】:
-
你的
root实体是什么,你能展示一下吗? -
Hello @code Tester 你能帮我吗,我的情况:stackoverflow.com/questions/60807531/…
标签: spring postgresql hibernate criteria-api