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

07-27 17:01