Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Método PUT atualiza tudo pra NULL !

Ola, Estou criando uma API para cadastro de cliente seguindo as aulas... Tem dado tudo certo. Quando chegou no PUT, apesar de dar status 200, atualiza todos os parâmetros para null! Alguém me ajuda a entender o pq?

ClienteController

    @PutMapping("/{id}")
    @Transactional
    public ResponseEntity<ClienteDto> atualizar(@PathVariable Long id, @RequestBody @Valid AtualizacaoClienteForm form) {
        Cliente cliente = form.atualizar(id, clienteRepository);

        return ResponseEntity.ok(new ClienteDto(cliente));
    }

AtualizacaoClienteForm:

public class AtualizacaoClienteForm {

private String telefone;

@Email
private String email;

public String getTelefone() {
    return telefone;
}

public void setTelefone(String telefone) {
    this.telefone = telefone;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

//busca tópicos pelo id do BD e atualizar informações que foram modificadas
public Cliente atualizar(Long id, ClienteRepository clienteRepository) {
    Cliente cliente = clienteRepository.getReferenceById(id);

    cliente.setTelefone(this.telefone);
    cliente.setEmail(this.email);

    return cliente;
}

}

Copiei apenas esses trechos pois como dito tudo antes estava funcionando...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Resolvido. O problema é que eu havia acrescentado atributos ao ClienteDto e na hora de construir o construtor estava construindo erroneamente.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software