我可以使用DynamoDB Mapper删除项目而不先加载它吗?

Abh*_*yer 10 amazon-dynamodb

我使用DynamoDB映射器删除项目但必须确保它在删除之前存在?

所以我现在正在做

public void delete(final String hashKey, final Long rangeKey) {
    final Object obj = mapper.load(Object.class, hashKey, rangeKey);
    if (obj != null) {
        mapper.delete(obj);
    } 
} 
Run Code Online (Sandbox Code Playgroud)

如果有办法删除项目而不先加载它?如果找不到该项,我希望它静静地返回

Fed*_*son 11

是的你可以!

只需创建一个包含要删除的ID的对象,并将其作为对象传递给delete方法:

...
MyObject object = new MyObject();
object.setHashKey(hashKey);
object.setRangeKey(rangeKey);
mapper.delete(object);
....
Run Code Online (Sandbox Code Playgroud)

  • 为什么不提供一种通过哈希键直接删除的方法?似乎没有必要强迫客户端实例化一个全新的对象...... (4认同)