java.sql.SQLException:不允许操作:Ordinal绑定和Named绑定不能组合



我使用helidon,对于调用存储过程,我们使用StoredProcedureQuery,对于注册,我们使用
registerStoredProcedureParameter,参数名称不是索引,对于设置参数,我们使用StoredProcedureQuery.setParameter,但我们有一段时间会得到sql错误java.sql.SQLException:不允许操作:顺序绑定和命名绑定不能组合。对微服务的未接受影响:i( 在问题出现后,整个服务崩溃,在此问题之后不允许进行任何其他操作。

请设法解决,这是一个紧急情况,我完全被困在一个项目的中间。

请找到以下代码:-

StoredProcedureQuery查询=this.entityManagerAdmin.createStoredProcedureQuery("USP_ENROLL_WIP_GET_SIGUP_DET"(.registerStore存储过程参数("p_username",String.class,ParameterMode.IN(.registerStore存储过程参数("p_details",ResultSet.class,ParameterMode.REF_CURSOR(;

System.out.println("setting parameter in query USP_ENROLL_WIP_GET_SIGNUP_DET");
query.setParameter("p_username", username);
System.out.println("Executing query USP_ENROLL_WIP_GET_SIGNUP_DET");
ResultSet rs = (ResultSet)query.getOutputParameterValue("p_details");

如果有人试图解决问题,成功不是我们的手。前进感谢那些人。

您必须调试到org.hibernate.query.procedure.internal.ProcedureParameterImpl#canDoNameParameterBinding中才能理解为什么它不能通过参数名称绑定参数,但我猜问题出在这里使用ResultSet。Hibernate能够将结果集映射到您想要的任何内容。如果您提供了结果集映射,则无需自己处理。另请参阅https://thorben-janssen.com/call-stored-procedures-jpa-part-2/#Stored_procedures_with_REF_CURSOR

最新更新