我有返回SYS_REFCURSOR是重度:org.hibernate.exception.GenericJDBCException:缺少IN或OUT參數的指數:: 1
CREATE OR REPLACE FUNCTION SCOTT.getemployees
RETURN SYS_REFCURSOR
AS
o_cursor SYS_REFCURSOR;
BEGIN
OPEN o_cursor FOR
SELECT EMPNO,
ENAME,
JOB,
MGR,
HIREDATE,
SAL,
COMM,
DEPTNO
FROM emp;
RETURN o_cursor;
END;
/
在我的實體類我已經聲明爲
一個Oracle函數@Entity
@javax.persistence.NamedNativeQuery(name = "getEmp",
query = "{ ? = call getemployees }", resultClass = Employees.class, hints = {
@javax.persistence.QueryHint(name = "org.hibernate.callable", value = "true") })
@Table(name = "EMPLOYEES")
public class Employees {
在DAO我
@Inject
private SessionFactory sessionFactory;
@Override
public List<Employees> getEmployees() {
List query = new ArrayList<Employees>();
try{
query = sessionFactory.getCurrentSession()
.getNamedQuery("getEmp").list();
}
catch(Exception e){
System.out.println("exception "+e.getMessage());
e.printStackTrace();
}
return query;
}
當我跑我得到的例外,可能是什麼原因FO這是什麼?
信息:休眠:{? =調用裝getEmployees} 重度:org.hibernate.exception.GenericJDBCException:缺少IN或OUT參數索引:: 1 在org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) 在org.hibernate作爲.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) at org.hibernate.engine.jdbc.internal .proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:129) 在org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
請停止使用JSF標記JPA問題。 JPA問題(其中您從'javax.persistence'或JPA實現特定包(如'org.hibernate')中檢索異常)與JSF無關。 JSF只是前端MVC框架。將此JPA代碼與普通JSP/Servlet,Spring MVC,Struts 2或Wicket,甚至Swing前端等一起使用時,您會遇到完全相同的問題。 – BalusC