Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Oracle数据库中json字段的JPA查询_Java_Oracle_Hibernate_Jpa - Fatal编程技术网

Java Oracle数据库中json字段的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

我有一个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
我得到了这个错误:

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。