Как сделать пакетное обновление в Dynamo DB, который обновляет только определенное поле - PullRequest
0 голосов
/ 16 октября 2018

Таблица состоит из следующих полей: deviceId, userId, key, validity

Это мой код для пакетного обновления

TableWriteItems writeItems = new TableWriteItems(getDevicesTableName(manufacturer, sdkType));

for(int j = i * maxUpdatePerBatch; j < (i + 1) * maxUpdatePerBatch; j++)
{
    JSONObject device = devices.getJSONObject(j);

    writeItems.addItemToPut(new Item().with(Param.DEVICE_ID, device.getString(Param.DEVICE_ID))
                                      .with(Param.VALIDITY, device.getString(Param.VALIDITY)));
}

BatchWriteItemOutcome outcome = db.batchWriteItem(writeItems);

То, что я пытаюсь сделать, это просто обновитьполе достоверности, сохраняя значение ключа поля и userId.

Однако, когда я выполняю приведенный выше код, кажется, что он обновляет поле действия, но удаляет поля key и userId.

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать только batchWriteItem, который является эквивалентом putItem, который заменяет весь элемент в таблице указанным вами элементом.

Вам необходимо вызывать updateItem индивидуально для каждого элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...