Hibernate:将从存储过程返回的游标转换为List

时间:2016-02-18 10:47:51

标签: java oracle hibernate stored-procedures

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

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

创建列表

我正在使用Oracle。

    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();
                }
            }

    });

提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为这应该有用。

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