DynamoDB Java AWS SDK - возможно ли упрощение UpdateItem? - PullRequest
0 голосов
/ 30 марта 2019

Я новичок в использовании AWS и пишу что-то, что добавит атрибут к предоставленному элементу, учитывая некоторые keyAttributes. У меня все получилось, но код, который я написал в итоге, выглядит для меня не интуитивно и глупо. (Я только основал это на документации, которую я нашел в Интернете.)

Мне удалось успешно выполнить базовое обновление элемента в таблице DynamoDB с помощью этого кода:

final AttributeValue fulfilled = new AttributeValue().withBOOL(true);

final UpdateItemRequest updateItemRequest = new UpdateItemRequest()
     .withTableName(tableName)
     .withKey(keyAttributes)
     .withUpdateExpression("SET fulfilled = :fulfilled")
     .withExpressionAttributeValues(ImmutableMap.of(":fulfilled", fulfilled));

final UpdateItemResult result = dynamoClient.updateItem(updateItemRequest);

Есть ли что-нибудь, что я могу сделать, чтобы сократить это до того, что я пытаюсь сделать здесь: просто добавив новый атрибут "выполнено" к элементу, установленному в true?

1 Ответ

1 голос
/ 01 апреля 2019

UpdateItemRequest всегда должен содержать имя таблицы и ключевые атрибуты.(Иначе как бы DynamoDB узнал, какой элемент нужно обновить?)

Однако вы можете упростить его, избавившись от ExpressionAttributeValues, например:

final UpdateItemRequest updateItemRequest = new UpdateItemRequest()
        .withTableName(tableName)
        .withKey(keyAttributes)
        .withUpdateExpression("SET fulfilled = TRUE");

final UpdateItemResult result = dynamoClient.updateItem(updateItemRequest);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...