Jag var mest okunnig, det fungerar faktiskt! Du kan ange båda resultatuppsättningarna, med var och en sin egen mapper. I koden ser det ut så här:
SimpleJdbcCall call = new SimpleJdbcCall(this.jdbc)
.withProcedureName("get_users3")
.returningResultSet("rs1", new ParameterizedRowMapper<Object[]>()
{
@Override
public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException
{
return new Object[] { rowNum, rs.getInt(1), rs.getString(2) };
}
})
.returningResultSet("rs2", new ParameterizedRowMapper<Object[]>()
{
@Override
public Object[] mapRow(ResultSet rs, int rowNum) throws SQLException
{
return new Object[] { rowNum, rs.getInt(1), rs.getString(2) };
}
});
Map<String, Object> res = call.execute();
assertNotNull(res.get("rs1"));
assertNotNull(res.get("rs2"));
List<Object[]> l1 = (List<Object[]>)res.get("rs1");
List<Object[]> l2 = (List<Object[]>)res.get("rs2");