关于hibernate调用存储过程的问题
我之前是这么调用的
SQLQuery query = session.createSQLQuery("{call proc_stuInfo()}").addEntity(StuInfo.class);
List list =query.list();
可是这个是单表的,如果我查询的是多表的呢,应该怎么调用
[解决办法]
CallableStatement cst = session.connection.prepareCall("{call sp_name(?,?,?)}");
[解决办法]
既然单表,用存储过程是不太夸张了。可以考虑把多表的操作都放在一个存储过程处理,并且是可以添加参数的存储过程。
[解决办法]
CallableStatement cs = null;
Session session = this.getSession();
try {
cs = SessionFactoryUtils.getDataSource(sessionFactory).getConnection().prepareCall("{ call exp_fl_intoFl(?,?) }");
cs.setString(1, "");//参数
cs.setString(2, "");
//cs.registerOutParameter(3, oracle.jdbc.OracleTypes.CURSOR);
cs.execute();
} catch (Exception e) {
e.printStackTrace();
}