我需要从表中批量删除项目。为此,我想使用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)
)。在dynamoDBMapperConfig参数中使用dynamoDBMapper.batchWrite
有什么陷阱吗?我使用AWS SDK 1.11.217版本。
最佳答案
您可以使用batchWrite
并可以在第二个参数中传递要删除的项目:
mapper.batchWrite(Collections.EMPTY_LIST, **objectsToDelete**, dynamoDBMapperConfig);