Я разрабатываю это приложение для извлечения данных из одной таблицы из существующей базы данных Oracle.
Здесь у нас есть сущность :
public class OrdemDeServicoCount {
private Long ordensInternas;
private Long ordensAtrasadas;
// assume getters and setters
}
картограф :
public class OrdemMapper implements RowMapper<OrdemDeServicoCount> {
@Override
public OrdemDeServicoCount mapRow(ResultSet rs, int rowNum) throws SQLException {
OrdemDeServicoCount ordens = new OrdemDeServicoCount();
ordens.setOrdensInternas(rs.getLong("ordensInternas"));
// ordens.setOrdensAtrasadas(rs.getLong("ordensAtrasadas"));
return ordens;
}
}
И, наконец, DAO :
public class OrdemDAO {
private JdbcTemplate jdbcTemplate;
public OrdemDAO(JdbcTemplate jdbcTemplate) {
super();
this.jdbcTemplate = jdbcTemplate;
}
public List<OrdemDeServicoCount> countOrdensInternasSemEncerrar() {
String sql = "SELECT COUNT(a.nr_sequencia) AS ordensInternas FROM MAN_ORDEM_SERVICO a "
+ "WHERE a.IE_STATUS_ORDEM IN (1,2) AND a.NR_GRUPO_PLANEJ IN (21)";
List<OrdemDeServicoCount> ordens = jdbcTemplate.query(sql, new OrdemMapper());
return ordens;
}
Кстати, вы все должны знать что если я объявлю раскомментированную строку ordens.setOrdensInternas(rs.getLong("ordensInternas"));
в mapper , я получу ошибку, потому что в моем DAO я не использую это поле.
Но что, если мне нужно создать другой метод, использующий только поле ordensInternas ? Опять же, я получил бы ошибку ...
Итак, я сомневаюсь: если мне нужно использовать поле ordensAtrasadas от сущности, мне придется создать другой класс просто реализовать еще один маппер? Или есть способ, которым я могу сделать любой условный в моем текущем OrdemMapper классе?