29 - Alterar (PATCH)
Em alguns casos, não queremos atualizar todos os dados de um registro, mas apenas um ou dois campos. Para isso, utilizamos o método @PatchMapping, ideal para alterações parciais.
Exemplo de Implementação
Dentro do seu controle, você pode criar um método assim:
@PatchMapping("/{codigo}")
public PessoaModelo alterarPessoaParcial(@PathVariable Long codigo, @RequestBody PessoaModelo pm) {
// Obter registro (O Optional no Java, especialmente no contexto do Spring, é uma classe contêiner que representa um valor que pode ou não estar presente, ajudando a evitar NullPointerExceptions ao forçar o tratamento explícito de valores ausentes).
Optional obj = this.pr.findByCodigo(codigo);
// Converter Optional em PessoaModelo
PessoaModelo pm2 = obj.get();
// Verificar quais informações foram omitidas ao enviar o PessoaModelo via @RequestBody.
// Atributos não especificados, não serão modificados.
if(pm.getNome() != null){
pm2.setNome(pm.getNome());
}
if(pm.getIdade() != null){
pm2.setIdade(pm.getIdade());
}
if(pm.getCidade() != null){
pm2.setCidade(pm.getCidade());
}
// Retorno
return this.pr.save(pm2);
}
Esse método permite atualizar apenas os campos enviados no corpo da requisição. Os campos não enviados permanecerão inalterados, desde que a lógica no repositório e no banco de dados suporte isso.
Testando com Thunder Client
- Abra o Thunder Client e selecione o método PATCH.
- Digite a URL da sua API: http://localhost:8080.
- Vá até a aba Body e selecione JSON.
- Informe apenas os campos que deseja alterar, por exemplo:
{
"codigo": 1,
"idade": 45
}
Observação Importante
O campo codigo é essencial para que o Spring Boot identifique qual registro deve ser alterado.
Ao enviar apenas um campo (como idade), o restante permanece intacto — desde que o comportamento do método save() seja compatível com a lógica de atualização parcial.
Dica
Essa abordagem é mais útil quando combinada com um serviço que busca o registro original, atualiza os campos individualmente e depois salva, garantindo que dados não enviados não sejam apagados.
Clique aqui para se tornar membro do canal
Abaixo segue nossa aula no YouTube: