Java 如何在jpa nativequery中执行postgresql json函数查询?

Java 如何在jpa nativequery中执行postgresql json函数查询?,java,json,postgresql,jpa,nativequery,Java,Json,Postgresql,Jpa,Nativequery,这里,我试图从jsonb列case_数据中获取一个名为business的对象,其中case_id是通过参数设置的 @Query(value="Select case_data->'business' from onboarding_cases where case_id=?1",nativeQuery=true) List<OnboardingCases> findByCaseAttrib(BigInteger caseId); 但它给出了错误: 错误26044-[nio-

这里,我试图从jsonb列case_数据中获取一个名为business的对象,其中case_id是通过参数设置的

@Query(value="Select case_data->'business' from onboarding_cases where case_id=?1",nativeQuery=true)
 List<OnboardingCases> findByCaseAttrib(BigInteger caseId);
但它给出了错误: 错误26044-[nio-8091-exec-1]o.h.engine.jdbc.spi.SqlExceptionHelper:在此结果集中未找到列名case_id

虽然表中存在此列,但我尝试使用简单查询,但它也给出了错误

   @Query("Select caseData->'business' from OnboardingCases where caseId=?1")
List<OnboardingCases> findByCaseAttrib(BigInteger caseId);
它给出错误:在>


上面的查询在pgAdmin4上运行得很好,但在jpa中运行得不好。

终于做到了。回答以帮助任何寻求答案的人。将返回类型更改为列表

@Queryvalue=从onboarding.onboarding\案例中选择案例\数据->“业务”,其中案例\ id=?1,nativeQuery=true 列出findByCaseAttribBigInteger案例id; 必须添加一个特殊的依赖项,以便将jsonb数据类型映射到hibernate。因为hibernate默认没有这样的数据类型

Vladmichalcea网站
.

它会运行。不起作用的是将结果集转换为列表,因为您的查询不会返回构成OnboardingCases的所有列。它只返回存储在表的一列中的JSON文档的一个字段。你不能只用一个轮子就造一辆车。我应该把返回类型改成什么?JSONObject??我不知道你的JSON是什么样子。但即使我知道,我也从未在PostgreSQL中使用JSON支持,所以我不知道。我不认为这是一个返回类型错误。因为它说case_id列名不存在。我尝试了许多返回类型,但它给出了1111个错误。它不存在于查询返回的结果集中,因为您没有选择任何以这种方式命名的列。