基于Callable statement support和许多其他文档javax.persistence.StoredProcedureQuery在jpa 2.1中提供
标准化支持处理JDBC CallableStatements(存储过程和函数调用)
但是当尝试使用StoredProcedureQuery实例调用oracle函数时,结果总是
PLS-00221: 'function_name' is not a procedure or is undefined
此代码是我如何使用它:
StoredProcedureQuery query = em.createStoredProcedureQuery("function_name");
query.registerStoredProcedureParameter("param1", String.class, ParameterMode.IN);
query.registerStoredProcedureParameter("param2", String.class, ParameterMode.IN);
query.registerStoredProcedureParameter("param3", String.class, ParameterMode.OUT);
query.setParameter("param1", "will");
query.setParameter("param2", "smith");
query.execute();
Object param3 = query.getOutputParameterValue("param3");
我的功能声明是这样的:
function "function_name"(
param1 in varchar2, param2 in varchar2, param3 out varchar2
) return number is
所以它有什么问题。