Java Oracle数据库中json字段的JPA查询
我有一个JPA实体:Java Oracle数据库中json字段的JPA查询,java,oracle,hibernate,jpa,Java,Oracle,Hibernate,Jpa,我有一个JPA实体: import com.fasterxml.jackson.databind.JsonNode; @Entity public class Data { @Id private Integer id; @Lob private JsonNode json; } 是否可以编写JPQL来查询json字段值 大概是这样的: from Data d where d.json.firstName = :firstName 我得到了这个错误: QueryExcep
import com.fasterxml.jackson.databind.JsonNode;
@Entity
public class Data {
@Id
private Integer id;
@Lob
private JsonNode json;
}
是否可以编写JPQL来查询json字段值
大概是这样的:
from Data d where d.json.firstName = :firstName
我得到了这个错误:
QueryException: could not resolve property: firstName
是否可以将其配置为在访问JsonNode字段时忽略属性解析错误?通常,您可以在
WHERE
子句中执行字符串匹配。数据库引擎需要支持更具体的JSON搜索。我找到了Oracle DB的文档:类似的东西可能会起作用,但仍要检查文档:
SELECT *
FROM Data d
WHERE json_textcontains(d.json, '$.firstName', firstName);
我最终使用了
json\u值
<代码>其中json_值(d.json,'$.firstName')=:firstName无法找到SELECT部分的解决方案,但json_value
在SELECT子句中不起作用,因此我必须获取整个json。