Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Atualizar complemento para null

Da forma que a verificação do campo é Null está escrita

        if (dados.numero != null) {
            this.numero = dados.numero;
        }
        if (dados.complemento != null) {
            this.complemento = dados.complemento;
        }

Porém como os campos numero e complemento podem ser null e se o novo endereço não tiver essas informações, a alteração desses campos não ocorrerá, ou seja, vai mudar o logradouro, bairro, etc.., mas o numero e complemento permanecerão o do endereço antigo. Para resolver isso verifico também se o campo no endereço antigo não é null:

        if (dados.numero != null || this.numero != null) {
            this.numero = dados.numero;
        }
        if (dados.complemento != null || this.complemento != null) {
            this.complemento = dados.complemento;
        }

Dessa forma funcionou, mas queria saber se essa é a melhor prática ou se Spring tem uma forma melhor?

2 respostas
solução!

Olá Álvaro, tudo bem?

A solução que você encontrou funciona, mas pode haver uma abordagem mais elegante usando o recurso de Optional do Java 8 (e versões superiores). Em vez de verificar se um campo é nulo, você pode usar o método orElse() para definir um valor padrão caso o campo seja nulo.

Por exemplo:

this.numero = Optional.ofNullable(dados.numero).orElse(this.numero);
this.complemento = Optional.ofNullable(dados.complemento).orElse(this.complemento);

Dessa forma, se o campo dados.numero ou dados.complemento for nulo, o valor do campo atual (this.numero ou this.complemento) será mantido. Caso contrário, o novo valor será atribuído ao campo.

Espero que isso ajude!

obrigado pelo retorno, mas não funcionou