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

使用StoredProcedureQuery调用PostgreSQL存储过程报语法错误的解决咨询

解决StoredProcedureQuery调用PostgreSQL存储过程的语法错误问题

你的报错核心是SQL语法错误,原因在于调用createStoredProcedureQuery时不该加call关键字——JPA会自动为PostgreSQL生成正确的存储过程调用语句,额外添加call会导致最终生成的SQL出现语法重复,触发PostgreSQL的语法校验错误。

修正后的代码如下:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery("test.pn_testforjava");
query.registerStoredProcedureParameter(1, String.class, ParameterMode.IN);
query.setParameter(1, className);
query.execute();

补充说明

使用JPA的StoredProcedureQuery时,只需要传入存储过程的完整限定名(模式名.存储过程名)即可,框架会根据底层数据库类型自动适配调用语法,不需要手动添加call、{call ...}这类数据库特定的调用前缀。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 01:45:27