GraphQL: как избежать перезаписи значений для неуказанных полей при обновлении через мутацию

Позволь мне объяснить:

Я использую Gson в качестве десериализатора, MongoDB в качестве хранилища и новый Spring GraphQL.

Допустим, у меня есть объект O в базе данных с полями:

      A = 6
B = null

Если внешний интерфейс отправляет обновление в поле B, поэтому я получаю JSON только с полем B с его значением, поэтому я получаю O с:

      B = 1

Затем после десериализации в Java мой объект O будет иметь следующие поля:


Затем в MongoDB он сохранит:

      A = null
B = 1

Таким образом, значение A будет перезаписано нулем, а мы этого не хотим, интерфейс хочет только обновить поле B.

Как вы решаете это изящно?

1 ответ

Сейчас в Spring GraphQL нет поддержки «исправляемых сущностей». В то время как nullпо сравнению с «пустыми» значениями для поля доступны непосредственно в карте JSON, привязка этого к объекту Java и привязка его к истории репозитория данных является более сложной задачей.

Это обсуждается в этом выпуске Spring GraphQL .

Другие вопросы по тегам