使用DynamoDBMapperConfig进行DynamoDBMapper批量删除

时间:2017-10-20 19:55:58

标签: java amazon-web-services amazon-dynamodb

我需要从表中批量删除项目。为此,我想使用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。

1 个答案:

答案 0 :(得分:0)

您可以使用batchWrite,并可以在第二个参数中传递要删除的项目:

mapper.batchWrite(Collections.EMPTY_LIST, **objectsToDelete**, dynamoDBMapperConfig);