- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
如何使用 DynamoDBMapper 更新 DynamoDB 项目?
我有多个进程,使用 DynamoDB 表,因此,get + save 会造成不一致。我找不到使用 DynamoDBMapper 更新项目的方法。
最佳答案
save()
方法将根据 中设置的值执行 putItem
或 updateItem
>保存行为。请引用以下说明。由于这个原因,DynamoDBMapper 类中没有更新方法。但是,有一个单独的删除方法可用。
Saves an item in DynamoDB. The service method used is determined by the DynamoDBMapperConfig.getSaveBehavior() value, to use either AmazonDynamoDB.putItem(PutItemRequest) or AmazonDynamoDB.updateItem(UpdateItemRequest):
UPDATE (default) : UPDATE will not affect unmodeled attributes on a save operation and a null value for the modeled attribute will remove it from that item in DynamoDB. Because of the limitation of updateItem request, the implementation of UPDATE will send a putItem request when a key-only object is being saved, and it will send another updateItem request if the given key(s) already exists in the table.
UPDATE_SKIP_NULL_ATTRIBUTES : Similar to UPDATE except that it ignores any null value attribute(s) and will NOT remove them from that item in DynamoDB. It also guarantees to send only one single updateItem request, no matter the object is key-only or not.
CLOBBER : CLOBBER will clear and replace all attributes, included unmodeled ones, (delete and recreate) on save. Versioned field constraints will also be disregarded. Any options specified in the saveExpression parameter will be overlaid on any constraints due to versioned attributes.
示例用法:-
DynamoDBMapperConfig dynamoDBMapperConfig = new DynamoDBMapperConfig(SaveBehavior.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);
关于java - 在 Java 中使用 DynamoDBMapper 更新 DynamoDB 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40152379/
我的数据库表由多行组成,其 id 是唯一的。 API(Endpoint) -> 获取 id 的行我正在传递输入数组 (id1,id2,id3,id4) Question : In DynamoDBMa
我正在尝试使用 Java API 在 DynamoDB 中创建表。 问题:它只在表中创建哈希键索引,没有其他属性。 private void createTable(DynamoDBMapper ma
在低级 API 上使用 DynamoDBMapper 是否会影响性能?我想性能开销会很小甚至微不足道,但我无法在网上找到任何这样的引用资料。 在线示例还显示了在 POJO 本身上使用的映射器注释。这是
我正在尝试将我的 Android 应用程序连接到 AWS DynamoDB,但我无法创建 DynamoDBMapper 对象并导入该库: import com.amazonaws.mobileconn
我试图根据两个不同列的组合使表中的项目保持唯一。 我有一个 instanceId 和 imageId 列(以及其他列),并且基于 Stackoverflow 上的几篇文章和 AWS Forums以下应
使用 Java DynamoDBMapper,我如何才能仅在对象不存在时保存它(基于主键)。如果确实存在,我希望抛出异常或失败,而不是更新现有条目。 最佳答案 我相信你应该能够用 DynamoDbSa
我在 Amazon 的 AWS 工具包中遇到基于 Java 的 DynamoDBMapper 问题,抛出“无法实例化类”异常错误。这是我第一次尝试使用 DBMapper,所以我不确定我是否已正确设置所
我正在使用 DynamoDBMapper,当且仅当散列键和范围键组合不存在时,我想有条件地保存。我知道有一些方法可以使用 UUID 来减少碰撞的可能性,但我想通过使用条件保存来保护自己。 我遇到了 t
我正在使用散列键查询 DynamoDB 表。表中的每条记录由哈希键和范围键唯一标识 DynamoDBMapper mapper; .... MyClass myClass = new MyClass(
我正在研究一种保存到 DynamoDB 的方法。如果表中不存在该值,我希望该方法能够保存。如果确实存在,我想应用条件更新。我正在使用 DynamoDBMapper 的保存方法。 我目前的代码成功地进行
这是我想测试的一段代码 ... DynamoDBQueryExpression queryExpression = createQueryForLatestOrders(orderId, storeI
当我尝试从 DynamoDB 表获取一组分页数据时,它可以正常工作,但前提是它要查找的数据位于表的顶部。如果它更深入(我按 user_alias 排序数据,每个别名有 100 个元素),它不会返回任何
我在 Amazon DynamoDB 中有一个员工表(即项目)。该表的属性是 {employee_id, name, manager_id} 该类在 Java 中使用以下方式表示: @DynamoDB
我刚刚开始我的第一个 DynamoDB 项目,我一直在尝试尽可能多地阅读文档。我认为我的项目的最佳可能性是在 SDK 中使用高级 DynamoDbMapper 以允许 CRUD 操作。 在 Dynam
当您想要以下条件时,是否可以使用 DynamoDB 映射器进行有条件的写入/更新:如果属性不等于 X 则写入?我想做一个有条件的写,做这样的事情: DynamoRecord record = mapp
我已经开始使用 DynamoDB 并在 DynamoDBMapper 上看到了这条指令 http://aws.amazon.com/articles/0802321832592496 假设我有一个用户
我在 Scala 中有以下 DynamoDB 项目 @DynamoDBTable(tableName = Table) class DynamoItem { private var indexId
我想从 Dynamo DB 表中获取所有记录,并将它们映射到一个 POJO 数组中; POJO 很简单并且已经注释了。 DynamoDBMapper 似乎是将执行提取以获取记录并将它们反序列化到我的
DynamoDBMapper 提供了从 Map 构建对象的方法 JavaDoc : public T marshallIntoObject(类 clazz, map 项属性, DynamoDBMapp
在用 Kotlin 编写的 AWS Lambda(即不是 Android)中使用 DynamoDBMapper,我可以使用数据类保存记录。但是,当我尝试将记录加载到数据类时,我收到“DynamoDBM
我是一名优秀的程序员,十分优秀!