mee*_*eza 9 java distributed-computing amazon-dynamodb
如何使用DynamoDBMapper更新DynamoDB项?
我有多个进程,使用DynamoDB表,因此,get + save会产生不一致.我找不到使用DynamoDBMapper更新项目的方法.
not*_*est 23
该save()方法将执行putItem或updateItem基于SaveBehavior中设置的值.请参阅以下说明.由于这个原因,DynamoDBMapper类中没有更新方法.但是,有一个单独的删除方法可用.
在DynamoDB中保存项目.使用的服务方法由DynamoDBMapperConfig.getSaveBehavior()值确定,以使用AmazonDynamoDB.putItem(PutItemRequest)或AmazonDynamoDB.updateItem(UpdateItemRequest):
UPDATE(默认值): UPDATE不会影响保存操作的未建模属性,而建模属性的空值将从DynamoDB中的该项中删除它.由于updateItem请求的限制,UPDATE的实现将在保存仅密钥对象时发送putItem请求,并且如果表中已存在给定密钥,它将发送另一个updateItem请求.
UPDATE_SKIP_NULL_ATTRIBUTES:与UPDATE类似,只是它忽略任何空值属性,并且不会从DynamoDB中的该项中删除它们.它还保证只发送一个updateItem请求,无论该对象是否为key-only.
CLOBBER: CLOBBER将在保存时清除并替换所有属性,包括未建模的属性(删除并重新创建).版本化字段约束也将被忽略.由于版本化属性,saveExpression参数中指定的任何选项都将覆盖在任何约束上.
用法示例: -
DynamoDBMapperConfig dynamoDBMapperConfig = new DynamoDBMapperConfig(SaveBehavior.UPDATE);
Run Code Online (Sandbox Code Playgroud)
UPDATE DynamoDBMapperConfig(aws sdk 1.11.473)构造函数似乎已被弃用,应该使用构建器:
DynamoDBMapperConfig dynamoDBMapperConfig = new DynamoDBMapperConfig.Builder()
.withConsistentReads(DynamoDBMapperConfig.ConsistentReads.CONSISTENT)
.withSaveBehavior(DynamoDBMapperConfig.SaveBehavior.UPDATE)
.build();
dynamoDBMapper.save(yourObject, dynamoDBMapperConfig);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9798 次 |
| 最近记录: |