You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可在JPA的@Query注解中使用此类复杂原生查询?

关于JPA @Query注解中使用复杂原生查询的可行性

完全可以在JPA的@Query注解中使用这类复杂原生查询,只要你正确设置nativeQuery = true(你的代码里已经完成了这个配置)。

需要注意几个细节:

  • 你用到的json_build_object和->>是PostgreSQL特有的JSON操作语法,所以你的数据库必须是PostgreSQL,同时JPA的底层实现(比如Hibernate)要支持这些数据库原生函数。
  • 方法返回类型用JSONObject时,要确保项目引入了Jackson等JSON处理依赖,且Hibernate能正确完成结果映射。如果遇到映射问题,可以先返回String类型,再手动转换为JSONObject,示例代码如下:
@Query(value = "select json_build_object (
          'sanctioned_roi' , data ->> 'sanctionedRoi',
          'calculated_emi' , data ->> 'calculatedEmi',
          'cibil_score' , data ->> 'CibilScore',
          'coborrower_bureau_score' , data ->> 'bureauScore',
          'case_stage' , data ->> 'leadStatus'
) from your_real_table_name where data->>'processInstanceId'=:processInstanceId",nativeQuery = true)
String findData(@Param("processInstanceId") String processInstanceId);

// 调用时转换
JSONObject jsonObject = new JSONObject(dataService.findData(processInstanceId));
  • 代码里的table是占位符,实际使用时要替换成你的真实表名,否则会触发数据库语法错误。

内容的提问来源于stack exchange,提问作者Umar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 18:05:46