我在sql server 2005 中写了一个查询的proc
exec proc_stuInfo;
在sql sever management studio 里调用是有数据的 ,是没有问题的
但在hibernate 调用就是没有数据返回。
// 调用存储过程
SQLQuery query = session.createSQLQuery("{Call proc_stuInfo()}");  
List list =query.list(); 
System.out.println("结果:"+list.size());

解决方案 »

  1.   

    final String sql = "{call prc_search()}";
    try { this.getHibernateTemplate().execute(new HibernateCallback() {
    public Object doInHibernate(Session arg0)
    throws HibernateException, SQLException {
    CallableStatement st = arg0.connection().prepareCall(sql);
    st.registerOutParameter(6, oracle.jdbc.OracleTypes.CURSOR);
    st.execute();
    ResultSet rs = null;
    try {

    rs = (ResultSet) st.getObject(6);
    while (rs.next()) {
    //这里做数据遍历
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    if (rs != null)
    rs.close();
    }
    return null;
    } });
    } catch (Exception e) {
    e.printStackTrace();
    }有什么不懂的再提。