Вообще-то никак.
Есть, к счастью, куча способов решить этот вопрос.
0. Не использовать странный метод PATCH. Просто обновлять всю модель целиком методом POST
1. Если по какой-то причинне хочется "частичное обновление" сделать - можно сделать, например, какой-то флаг, который бы указывал, будут ли обновляться нулабельные поля. Можно подумать так же об отдельном методе.
2. Для метода PATCH разработать новую модель, которая будет указывать на поля и их новые значение. Типа мапы.
Т.е. для
record User(String name, String phoneNumber){}
Принимать что-то типа такого джейсона:
{
toUpdate : {
"name" : "newName"
},
toDelete: {
phoneNumber
}
}
Похоже, что этот вопрос возник из-за желания использовать доменную модель во внешней интеграции, что является ошибкой проектирования. Как только вы откажетесь от такого подхода и будете использовать для внешних интеграций отдельные, специализированные модельки - все встанет на свои места.