从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(); 

….

但是,当我执行这个类时,我总是得到以下exception:

 java.lang.IllegalArgumentException: org.hibernate.QueryParameterException: could not locate named parameter [1] 

我似乎无法得到JPA如何找不到参数1 ….过去4个小时我一直在打破这个问题。 任何人都可以建议如何得到我想要的结果?

如果您要在JPA选择查询中调用函数,请按照以下链接操作:

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(?)");