Я использую Spring data jpa для постоянства.Скажем, я должен обновить модель.Эта модель имеет n полей с первичным ключом.
{
"some_model":{
"id":"5527716",
"field_one": "44248156",
"field_two": "44248156",
"field_three": "44248156",
"field_four": "44248156",
"field_five": "44248156",
"field_six": "44248156",
"field_seven": "44248156",
"field_eight": "44248156",
"field_nine":"65037768"
}
}
Рассматривая json как представление моей модели, я хочу обновить только те поля, которые входят в json (первичный ключ).Идентификатор, который всегда будет там).Есть ли способ, которым я могу достичь, не проверяя каждое поле явно и не устанавливая их?
Скажем, я получаю запрос вроде:
{
"some_model":{
"id":"5527716",
"field_one": "44248156",
"field_two": "44248156",
"field_three": "44248156",
"field_eight": "44248156",
"field_nine":"65037768"
}
}
Я хочу добиться обновления (upsert вид вещи) просто используя repository.save или что-то подобное.В настоящее время при использовании метода save репозитория внутренне обновляется модель с использованием значения primaryKey, но в качестве значений для отсутствующих полей устанавливается значение NULL.Я хочу, чтобы эти поля остались без изменений.
Основная проблема: есть сотни моделей, и каждая модель имеет около 10-15 полей, и явная проверка каждого поля и обновление для всех моделей было бы кошмаром.
Я также проверил аннотацию @DynamicUpdate
, но, похоже, она применима для явной настройки, где сгенерированный sql оптимизирован.
Буду признателен за любые идеи по этому поводу.