我有一个返回 sys_refcursor 的 Oracle 函数,它是
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;
/
在我的实体类中,我声明为
@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;
}
当我跑步时出现异常,这可能是什么原因?
信息:休眠:{?= 调用 getemployees } 严重:org.hibernate.exception.GenericJDBCException:在 org.hibernate.engine 的 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54) 处的索引处缺少 IN 或 OUT 参数:: 1。 jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:125) 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:110) 在 org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler。 continueInvocation(AbstractStatementProxyHandler.java:129) 在 org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)