从具有多个引用游标的Hibernate调用存储过程 [英] call a Stored Procedure from Hibernate having multiple ref cursor

查看:57
本文介绍了从具有多个引用游标的Hibernate调用存储过程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从存储过程中检索值.该存储过程有两个引用游标.下面是SP:

I am trying to retrieve values from the Stored Procedure. This stored procedure has two ref cursors. Below is the SP:

create or replace PROCEDURE "EMP_JOB" (
    p_job           VARCHAR2,
    p_emp_refcur    IN OUT SYS_REFCURSOR,
    p_sal_refcur    IN OUT SYS_REFCURSOR
)
IS
BEGIN
    OPEN p_emp_refcur FOR 
    SELECT empno, ename 
    FROM emp 
    WHERE job = p_job;

    OPEN p_sal_refcur FOR 
    SELECT sal 
    FROM emp 
    WHERE job = p_job;
END;

这是我的Java代码:

Here is my java code:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery("EMP_JOB")
                .registerStoredProcedureParameter(1, String.class, ParameterMode.IN)
                .registerStoredProcedureParameter(2,  Class.class, ParameterMode.REF_CURSOR)
                .registerStoredProcedureParameter(3,  Class.class, ParameterMode.REF_CURSOR)        
                .setParameter(1, "CLERK");

query.execute();
Iterator queryIterator = query.getResultList().iterator();
ArrayList<Object> vinArray= new ArrayList<Object>();

while(queryIterator.hasNext()){
     Object st= (Object)queryIterator.next();
     vinArray.add(st);
}

我可以检索参数2(p_emp_refcur IN OUT SYS_REFCURSOR)的输出.

I can retrieve the output for the parameter 2( p_emp_refcur IN OUT SYS_REFCURSOR).

如何获取参数3(p_sal_refcur IN OUT SYS_REFCURSOR)的输出.

How can I get the get the output for parameter 3( p_sal_refcur IN OUT SYS_REFCURSOR).

任何帮助将不胜感激.

预先感谢

推荐答案

已提交给Hibernate团队的问题:

Issue already raised to Hibernate team:

https://hibernate.atlassian.net/browse/HHH-12596

这篇关于从具有多个引用游标的Hibernate调用存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆