我在看这个例子 Oracle function from Hibernate。它在解决方案中告诉:
int result = call.getInt(1); // propagate this back to enclosing class
有人能指出我如何做到这一点?
答案 0 :(得分:0)
这是一个返回String而不是int并将其传播回封闭类的示例
String results = sessionFactory.getCurrentSession().doReturningWork(
new ReturningWork<String>() {
public String execute(Connection connection) throws SQLException {
CallableStatement call = connection.prepareCall("{ ? = call emb_copy_tool_fc(?,?,?) }");
call.registerOutParameter( 1, Types.VARCHAR ); // or whatever it is
call.setString(2, t_order_headers_id);
call.setString(3, t_new_order_headers_id);
call.setString(4, p_by);
call.execute();
String result = call.getString(1); // propagate this back to enclosing class
return result;
}
});
答案 1 :(得分:-1)
这是关于存储过程的输出参数。您显示的链接实际上是在成功执行后调用存储过程并从PrepareCall获取输出参数。
为此,您需要了解输出参数在SP中的工作方式。