从JPA调用oracle函数

| 我正在尝试从JPA类调用一个简单函数,该类基于一些计算返回一个数字,并具有以下定义。
\'CREATE OR REPLACE FUNCTION CFB.FC_AMOUNT_CHECK(accountNumber IN VARCHAR2)
return NUMBER IS .....\'
我试图通过以下方式从JPA调用此函数。
StringBuilder sql = new StringBuilder(\"call CFB.FC_AMOUNT_CHECK(:accountNumber)\");
Query query = em.createNativeQuery(sql.toString());
query.setParameter(1, \'1234\');
List<?> result = query.getResultList();
.... 但是,当我执行此类时,总是会得到以下异常:
java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [1]
我似乎无法理解JPA如何找不到参数1 ....在过去的4个小时里,我一直为此而烦恼。有人可以建议如何获得我想要的结果吗?     
已邀请:
如果您希望在JPA select查询中调用函数,请点击以下链接,它可以工作: http://www.eclipse.org/eclipselink/documentation/2.5/jpa/extensions/j_func.htm     
如果要按索引设置查询参数:
query.setParameter(1, \'1234\');
您需要在查询中更改命名参数,并用
?
替换它,如下所示:
StringBuilder sql = new StringBuilder(\"call CFB.FC_AMOUNT_CHECK(?)\");
    

要回复问题请先登录注册