如何在hibernate中调用带有2个参数的过程?

时间:2015-08-11 08:49:35

标签: hibernate hibernate-criteria

如何在休眠中使用2 out参数调用一个过程?这是我的程序:

PROCEDURE get_my_prc(IN p_id bigint unsigned, OUT p_total_avail int, OUT p_total_wl int)

我如何在hibernate中调用此proc?

2 个答案:

答案 0 :(得分:0)

尝试原生SQL。

String sql = "SELECT get_my_prc(:in1, :in2, :in3) FROM dual";
SQLQuery query = session.createSQLQuery(sql);
query.setParameter("in1", new Object()); // Replace new Object() with whatever you need
query.setParameter("in2", new Object()); // Replace new Object() with whatever you need
query.setParameter("in3", new Object()); // Replace new Object() with whatever you need
List results = query.list();

本教程中的更多信息:http://www.tutorialspoint.com/hibernate/hibernate_native_sql.htm

编辑:

还要记住,您必须将本机SQL查询修改为您正在使用的数据库。我在示例中提供的那个可能不起作用。如果直接在数据库上运行,只需使用适合您的标准查询。

答案 1 :(得分:0)

只是正常的方式,但存储响应出param 在Object []中我们也可以在Onject []

中获得多个响应值
Object[] respnseCode = (Object[])session.createSQLQuery(
"CALL myProcedure_only_in_parms (:in_Id)")
.setParameter("in_id", 123);
List result = query.list();
sysout("out_Id"+respnseCode[0]);
sysout("out_message"+respnseCode[1]);