2014-09-30 13 views
6

Tôi đang nâng cấp ứng dụng Spring 3 lên Spring 4. My @RepositoryParameterizedRowMapper đối tượng để ánh xạ kết quả SQL cho các đối tượng. Nhưng kể từ mùa xuân 4 giao diện đó đã được deprecated "ủng hộ thường xuyên SingleColumnRowMapper". Nhưng tôi sử dụng người lập bản đồ để lập bản đồ nhiều cột. Làm cách nào để lập bản đồ nhiều cột bằng cách sử dụng SingleColumnRowMapper? Hay tôi muốn làm điều gì đó hoàn toàn khác biệt?Nâng cấp từ ParameterizedRowMapper sang SingleColumnRowMapper cho nhiều cột

Ví dụ, đây là loại mã tôi có bây giờ:

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

Làm thế nào tôi nên được thực hiện rằng loại chức năng bây giờ?

+0

Hmm không chắc tại sao nó ở đó nhưng tôi chắc chắn đó là lỗi đánh máy. Nó phải là ['RowMapper'] thông thường (http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jdbc/core/RowMapper.html) thay thế. Vì Spring 3.x được tham số hóa và vì vậy 'ParameterizedRowMapper' đã lỗi thời. –

+0

Xem thêm http://stackoverflow.com/questions/6960542/parameterizedrowmapper-is-recommended-or-rowmapper – Raedwald

Trả lời

10

Javadoc có vẻ sai. Các nhà thiết kế khung Spring có thể có ý định sử dụng giao diện RowMapper<Thing> để thay thế ParameterizedRowMapper<Thing>. Đó là, sử dụng giao diện cơ sở.

Các vấn đề liên quan