PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Aterar um Campo data - Java Spring - JDBC Template #557005

12/06/2016

0

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

Esmeraldina Silva

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar