我的Dao课程中有这个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是正确创建的......
答案 0 :(得分:1)
您的存储过程正在生成多个结果集。 Spring会分配您没有声明自动名称的结果集,就像您所看到的那样。请在此处查看此行为的说明:https://jira.springsource.org/browse/SPR-593?actionOrder=desc以及如何在http://forum.spring.io/forum/spring-projects/data/27532-jdbctemplate-missing-some-functionality处理多个结果集的讨论