【发布时间】:2022-01-23 15:47:01
【问题描述】:
我在表中有一个 json 列,例如:
@Type(type = "jsonb")
@Column(name = "json_data", columnDefinition = "json")
private List<Persion> jsonData = Collections.emptyList();
public class Persion implements Serializable {
private String name;
private int age;
private String sex;
}
我想查询包含json中特定名称的行,我写了这段代码:
predicates.add(
criteriaBuilder.like(
criteriaBuilder.treat(root.get("jsonData"), String.class),
"%" + name + "%"
)
)
但它会抛出异常:
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('%' (code 37)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
我可以将 json 读取为字符串,然后使用 where 条件进行查询吗? 任何帮助将不胜感激。
【问题讨论】:
标签: postgresql jpa criteria parseexception