休眠:将从存储过程返回的光标转换为列表



我已经实现了一个从休眠调用存储过程的代码。sp 返回一个游标,如何在列表中获取结果。

下面是我调用 sp 的代码。如何从 callstm.getObject(1) 创建列表;

我正在使用甲骨文。

    Transaction tx = sessionFactory.getCurrentSession().beginTransaction();
    Session session = sessionFactory.getCurrentSession();
    session.doReturningWork(new ReturningWork<Object>() {
            @SuppressWarnings( "unchecked" )
            @Override
            public Object execute( Connection aConnection ) throws SQLException
            {
                CallableStatement callstm = null;
                try
                {
                    String functionCall = "{call PORTAL_PKG._pp_member_login(?, ?, ?, ? )}";
                    callstm = aConnection.prepareCall( functionCall );
                    callstm.registerOutParameter( 1, OracleTypes.CURSOR );
                    callstm.setString( 2, "Partner" );
                    callstm.setString( 3, "Member" );
                    callstm.setString( 4, "test@123" );
                    callstm.execute();
                    callstm.getObject(1);                       
                }
                finally
                {
                   callstm.close();
                }
            }
    });

提前谢谢。

我认为这应该有效。

...
callstm.execute();
ResultSet rset = (ResultSet)callstm.getObject(1);
while (rset.next()){
      System.out.println(rset.getString(columnIndex));
}
// Close all the resources
...

最新更新