从ParameterizedRowMapper升级到SingleColumnRowMapper以获取多个列

时间:2014-09-30 13:37:06

标签: spring repository

我将Spring 3应用程序升级到Spring 4.我的@RepositoryParameterizedRowMapper个对象将SQL结果映射到对象。但是从Spring 4开始,该接口已经deprecated"支持常规SingleColumnRowMapper"。但是我使用映射器来映射多个列。我打算如何使用SingleColumnRowMapper映射多个列?或者我打算做一些完全不同的事情?

例如,这是我现在的代码类型:

    private static final ParameterizedRowMapper<Thing> THING_ENTRY_MAPPER = new ParameterizedRowMapper<Thing>() {

       @Override
       public Thing mapRow(ResultSet rs, int rowNum) throws SQLException {
          return new Thing(rs.getLong(1), rs.getLong(2), rs.getInt(3));
       }
    };


    @Override
    public List<Thing> getThings(
          ID id, long start, long end) {
       final Map<String, Object> params = new HashMap<String, Object>(4);
       putIDParams(params, id);
       putTimeRangeParams(params, start, end);
       return getNamedParameterJdbcTemplate().query(QUERY_THING, params,
             THING_ENTRY_MAPPER);
    }

我现在应该如何实现这种功能?

1 个答案:

答案 0 :(得分:10)

Javadoc似乎错了。 Spring Framework设计者可能打算使用RowMapper<Thing>接口来替换ParameterizedRowMapper<Thing>。也就是说,使用基接口。