我需要从表中批量删除项目。为此,我想使用dynamoDBMapper.batchDelete(itemsToRemove)
,
但是batchDelete方法不接受DynamoDBMapperConfig
作为最后一个方法参数,同时许多DynamoDBMapper方法接受它(例如load(), save(), delete(), batchWrite(), batchLoad()
)。
我使用DynamoDBMapperConfig
覆盖使用@DynamoDBTable(tableName = "...")
定义的表名称(在我的情况下,它在不同的配置文件中更改):
dynamoDBMapperConfig = new DynamoDBMapperConfig.TableNameOverride(tableName).config();
我决定使用batchWrite(objectsToWrite, objectsToDelete, dynamoDBMapperConfig)
作为批量删除项,因为batchWrite方法接受dynamoDBMapperConfig参数:
dynamoDBMapper.batchWrite(Collections.emptyList(), itemsToRemove, dynamoDBMapperConfig);
似乎工作正常。
有没有理由为什么batchDelete和batchSave方法没有DynamoDBMapperConfig作为方法参数,同时batchWrite有它?
(可能是因为现有方法的设计很差:batchDelete(Object... objectsToDelete)
)。将dynamoDBMapper.batchWrite
与dynamoDBMapperConfig参数一起使用是否存在任何缺陷?
我使用aws sdk版本1.11.217。
答案 0 :(得分:0)
您可以使用batchWrite
,并可以在第二个参数中传递要删除的项目:
mapper.batchWrite(Collections.EMPTY_LIST, **objectsToDelete**, dynamoDBMapperConfig);