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?