java - hibernate3中不带参数的调用过程

标签 java oracle hibernate

我使用 hibernate3 并没有使用 JPA 我在 oracle 中有一个过程返回 2 个输出参数 为了进行测试,我使用此查询在 Oracle 中执行此过程。

declare

req_type  number;
req_seq  number;

begin

insert_req(1111,req_type,req_seq);
dbms_output.put_line('req_type='||req_type);
dbms_output.put_line('req_seq='||req_seq);
end;

现在我想使用 hibernate 调用这个过程

我尝试使用 native 查询但没有成功使用此代码:

public void insertReq(String numEmp) {

                    int req_type  ;
                    int req_seq;


                    String sql = " insert_req(1111,:in1,:in2) ";
                    SQLQuery query = session.createSQLQuery(sql);
                    query.setParameter("in1", req_type); 
                    query.setParameter("in2", req_seq); 
                    List results = query.list();

                    System.out.println(req_type);
                    System.out.println(req_seq);

                    }

当我有一个函数时,我可以使用 hibernate 运行它,使用此代码作为示例:

public void insertOrder(String numEmp) {

            String query = "call  insert_order(" + numEmp + ",50)";


            SQLQuery sqlQuery = this.getSession().createSQLQuery(query);
            sqlQuery.executeUpdate();

        }

但问题是如何使用 hibernate 调用带有 2 个输出参数的过程。

最佳答案

您必须使用 CallableStatement 和 registerOutParameter。 您可以从 hibernate session 获取连接并创建可调用语句。 hibernate 没有提供处理这个问题的机制(至少据我所知)。 我希望这有帮助。

关于java - hibernate3中不带参数的调用过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53122707/

相关文章:

SQL COUNT - 带有两个 COUNT 列且 WHERE 子句不同的输出表

java - ORA-01460 : unimplemented or unreasonable conversion requested using Hibernate @Lob

java - 标准查询 ORDER BY 产生错误。这是 SQL-SERVER 的限制吗?如何在复杂的条件查询上正确排序?

java - 在 JPA 或 Hibernate 查询中使用 Constructor Result 会影响性能吗?

java - 隐藏或禁用 WebView 软键盘 Go/Done/Enter 按钮

javascript - 在 Java 中访问 JavaScript 对象的字段

java - 返回计算总和的数组

java - JSR 303 实现给出了 ClassCastException

java - 如何在 Java 中正确编写 unicode 名字的正则表达式?

java - Java 扫描器上的 NotSerializableException?