Так сложилось, что на Spring Boot нужно воспроизвести уже существующий API другой системы.
Там используются частичные update записей, т.е. у запроса есть необязательные параметры и в БД нужно изменить только то, что передано.
Нужно в общем обработать запросы вида:
1) /update?id=10&name=имя
меняет у записи с id=10 только значение "name", т.к. другие не были переданы.
2) /update?id=10&name=имя&value=
уже должен поменять name и value, т.к. они переданы. value соответственно идёт как null
3) /update?id=10&name=имя&value=10
так же меняет name и value и у value значение 10
Вот непонятно как нормально отличать случаи 1 и 2.
Если аргумент метода описать обычно:
@RequestParam(name = "value", required = false) Long value
то в обоих случаях будет null и не понятно: нужно в БД записать null или этот параметр не нужно изменять.
Принимать на вход ещё какой-нибудь HttpServletRequest и из него вручную получать информацию о наличии каждого параметра?