日期:2014-05-18  浏览次数:20683 次

关于hibernate调用存储过程的问题
我之前是这么调用的
SQLQuery query =  session.createSQLQuery("{call proc_stuInfo()}").addEntity(StuInfo.class); 

       List list =query.list();

可是这个是单表的,如果我查询的是多表的呢,应该怎么调用
存储 Hibernate

------解决方案--------------------
联合就行了么,怎么联合数据库,怎么联合映射文件和字段....
------解决方案--------------------
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();
}