Java StoredProcedure с SqlReturnResultSet не работает

У меня есть этот SP в моем классе Дао:

private class ScoreStoredProcedure extends StoredProcedure {
    private static final String SPROC_NAME = "loadUserScore";

    public ScoreStoredProcedure(DataSource datasource) {
        super(datasource, SPROC_NAME);

        declareParameter(new SqlReturnResultSet("score", mScoreMapper));
        declareParameter(new SqlParameter("vusername", Types.VARCHAR));
        declareParameter(new SqlParameter("vuuid", Types.VARCHAR));
        declareParameter(new SqlParameter("vlimit", Types.INTEGER));

        compile();
    }

    @SuppressWarnings("unchecked")
    public List<Score> execute(String pUsername, String pUUID, int pLimit){ 
        Map<String,Object> lAllScore = super.execute(pUsername, pUUID, pLimit);
        return ((List<Score>) lAllScore.get("score")); 
    }

}

Все работает нормально, но у меня проблемы с отображением списка результатов. У меня есть эта строка в логах:

INFO: Added default SqlReturnResultSet parameter named #result-set-2

но почему ResultSet сопоставляется с ключом #result-set-2? Здесь я объявил это как declareParameter(new SqlReturnResultSet("score", mScoreMapper));

В чем проблема? RowMapper создан правильно...


person s_bei    schedule 13.10.2013    source источник


Ответы (1)


Ваша хранимая процедура генерирует более одного набора результатов. Spring присваивает наборы результатов, которым вы не объявили автоматические имена, подобные тому, которое вы видите. См. описание этого поведения здесь: https://jira.springsource.org/browse/SPR-593?actionOrder=desc и обсуждение того, как обрабатывать несколько наборов результатов, на странице http://forum.spring.io/forum/spring-projects/data/27532-jdbctemplate-missing.-some-functionality

person Jules    schedule 13.10.2013
comment
почему у меня более одного набора результатов? Из-за нескольких запросов? - person s_bei; 14.10.2013
comment
Предположительно, да. Если вы разместите свою хранимую процедуру, мы можем посмотреть на это. - person Jules; 14.10.2013