数据库下面有一个存储过程generate_batch_num(in type int, out batch_num varchar(25)),下面的就是一个调用的代码
@Override public String getBatchnum(int type) { /**sessionFactory是使用自动注入 @Autowired private SessionFactory sessionFactory; */ Session session = sessionFactory.getCurrentSession(); ProcedureCall procedureCall = session.createStoredProcedureCall("generate_batch_num"); //我试过使用procedureCall.registerParameter(1, Integer.class, ParameterMode.IN).bindValue(type); //procedureCall.registerParameter(2, Integer.class, ParameterMode.IN).bindValue(type); //这也是可以,估计hibernate识别的是顺序 procedureCall.registerParameter(0, Integer.class, ParameterMode.IN).bindValue(type); procedureCall.registerParameter(1, String.class, ParameterMode.OUT); System.out.println(procedureCall.getOutputs()); return (String) procedureCall.getOutputs().getOutputParameterValue(1); }