I'm trying to develop a CRUD for an application, having the following model:
@Entity
public Person {
  @Id
  @GeneratedValue
  private Long id;
  private String name;
  private String surname;
  private String email;
}
and the following mapping for the update:
@PatchMapping(value = "/update/{id}", consumes = "application/json")
public Person updatePerson(@PathVariable String id, @RequestBody Person payload){
      return personRepository.save(payload);
    }
If I have an object created as:
{
    "name": "John",
    "surname": "Doe"
}
Doing an update request as:
{
    "id": 1,
    "name": "Alfred"
}
will erase all the other fields not defined on the request. Is there a "clever" way to update that I'm failing to notice or I have to check field by field if they are set and update them accordingly?
