如何在休眠中使用2 out参数调用一个过程?这是我的程序:
PROCEDURE get_my_prc(IN p_id bigint unsigned, OUT p_total_avail int, OUT p_total_wl int)
我如何在hibernate中调用此proc?
答案 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]);