从发电机数据库返回更新的项目



我正在使用dynamoDBExpressionSpecBuilder(Java(为数据库中的项目创建更新查询。我希望返回整个修改后的资源,而不必单独指定所有属性。

有办法做到这一点吗?

如果你被迫使用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方法并按照javadoc中的描述修改DynamoDBMapperConfig.SaveBehavior属性来实现它:https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/dynamodbv2/datamodeling/DynamoDBMapper.html#save-T-com.amazonaws.services.dynoldb.v2.datamodeling.DynamoDBSaveExpression.com.azonaws.ervices.dynoldb.v2.datamodelion.DynamoDBMapperConfiguration-

最新更新