Возврат обновленного элемента из DynamoDB - PullRequest
0 голосов
/ 23 апреля 2020

Я использую DynamoDB ExpressionSpecBuilder (Java) для создания моего запроса на обновление элемента в базе данных. Я хотел бы, чтобы весь измененный ресурс был возвращен без необходимости указывать все атрибуты по отдельности.

Есть ли способ сделать это?

1 Ответ

0 голосов
/ 26 апреля 2020

Если вы вынуждены использовать ExpressionSpecBuilder, я не смог найти никакого способа.

Однако есть и другие альтернативы, такие как UpdateItemRequest, где вы можете установить для свойства ReturnValues значение ALL_NEW и получить все атрибуты в виде карты:

UpdateItemRequest updateProgramCounterRequest = new UpdateItemRequest()
   .withTableName(...)
   .withUpdateExpression(...)
   .withReturnValues(ReturnValue.ALL_NEW);

UpdateItemResult updateItemResult = amazonDynamoDB.updateItem(updateItemRequest);
Map<String, AttributeValue> attributes = updateItemResult.getAttributes();

Затем вы можете сопоставить их с вашим ресурсом.

Подход более высокого уровня использует DynamoDBMapper. В зависимости от типа обновления, которое вам нужно сделать, вы также можете достичь его, используя метод save и изменив свойство DynamoDBMapperConfig.SaveBehavior, как описано в javado c: https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html#save -T-com. амазонки aws .services.dynamodbv2.datamodeling.DynamoDBSaveExpression-com.amazon aws .services.dynamodbv2.datamodeling.DynamoDBMapperConfig-

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