Aterar um Campo data - Java Spring - JDBC Template
Tenho um campo data onde não é obrigatório entrar com a data (pode ficar vazio) todavia meu programa está gravando este campo em branco, porém depois que insiro uma data não consigo mais alterá-la. No banco SQL o campo date está como NULL DEFAULT NULL. Nome do campo: "autoriza". Alguém poderia me ajudar?
@Repository
public class FaltaDao extends GenericDao<Falta> {
private FuncionarioDao funcionarioDao;
@Autowired
public FaltaDao(DataSource dataSource, FuncionarioDao funcionarioDao) {
super(dataSource, Falta.class);
this.funcionarioDao = funcionarioDao;
}
@Override
protected SqlParameterSource parameterSource(Falta falta) {
MapSqlParameterSource source = new MapSqlParameterSource();
source.addValue("falta", java.sql.Date.valueOf(falta.getFalta()));
source.addValue("nome", falta.getFuncionario().getNome());
if (falta.getAutoriza() != null) {
source.addValue("autoriza", java.sql.Date.valueOf(falta.getAutoriza()));
}
source.addValue("tipo", falta.getTipo());
source.addValue("motivo", falta.getMotivo());
source.addValue("idFuncionario", falta.getFuncionario().getIdFuncionario());
source.addValue("idFalta", falta.getIdFalta());
return source;
}
@Override
protected RowMapper<Falta> rowMapper() {
return new RowMapper<Falta>() {
public Falta mapRow(ResultSet rs, int rowNum) throws SQLException {
Falta falta = new Falta();
falta.setIdFalta(rs.getInt("ID_FALTA"));
String nome = rs.getString("NOME");
falta.setFalta(rs.getDate("FALTA").toLocalDate());
if (rs.getDate("AUTORIZA") != null) {
falta.setAutoriza(rs.getDate("AUTORIZA").toLocalDate());
}
falta.setTipo(rs.getString("TIPO"));
falta.setMotivo(rs.getString("MOTIVO"));
Integer id = rs.getInt("ID_FUNCIONARIO");
Funcionario funcionario = funcionarioDao.findById(id);
falta.setFuncionario(funcionario);
return falta;
}
};
}
public Falta save(Falta falta) {
Number key = super.save("FALTAS", "ID_FALTA", parameterSource(falta));
falta.setIdFalta(key.intValue());
return falta;
}
public int update(Falta falta) {
String dataAutoriza = "";
if (falta.getAutoriza() != null) {
dataAutoriza = "autoriza = :dataAutoriza, ";
}
String sql = "UPDATE faltas "
+ "SET " + dataAutoriza
+ "falta = :falta, tipo = :tipo, motivo = :motivo, "
+ "id_funcionario = :idFuncionario, "
+ "nome = :nome "
+ "WHERE id_falta = :idFalta";
return super.update(sql, parameterSource(falta));
}
public int delete(Integer id) {
String sql = "DELETE FROM faltas WHERE id_falta = ?";
return super.delete(sql, id);
}
public Falta findById(Integer id) {
String sql = "SELECT * FROM faltas WHERE id_falta = ?";
return super.findById(sql, id, rowMapper());
}
public List<Falta> findAll() {
String sql = "SELECT * FROM faltas ORDER BY nome";
return super.findAll(sql, rowMapper());
}
public List<Falta> findByPage(int page, int size) {
return namedQuery().query(
"select * from faltas limit :page, :size",
new MapSqlParameterSource("page", page).addValue("size", size),
rowMapper());
}
}
Esmeraldina Silva
Curtidas 0