Amazon dynamodb Amazon DynamoDBMapper.delete方法不删除项

Amazon dynamodb Amazon DynamoDBMapper.delete方法不删除项,amazon-dynamodb,Amazon Dynamodb,我使用AWS DynamoDBMapper Java类来构建一个存储库类,以支持CRUD操作。在我的单元测试中,我创建了一个项目,将其保存到DB中,加载它,然后删除它。然后我用deleted item的主键对数据库进行了查询,查询返回一个空列表,看起来都是正确的。但是,当我检查AWS控制台上的表时,删除的项仍然存在,并且其他会话上的另一个客户端仍然可以找到该项。我做错了什么?是否需要任何其他配置或设置来确保“硬删除”按预期进行?我的API如下所示: public void deleteObjec

我使用AWS DynamoDBMapper Java类来构建一个存储库类,以支持CRUD操作。在我的单元测试中,我创建了一个项目,将其保存到DB中,加载它,然后删除它。然后我用deleted item的主键对数据库进行了查询,查询返回一个空列表,看起来都是正确的。但是,当我检查AWS控制台上的表时,删除的项仍然存在,并且其他会话上的另一个客户端仍然可以找到该项。我做错了什么?是否需要任何其他配置或设置来确保“硬删除”按预期进行?我的API如下所示:

public void deleteObject(Object obj) {
    Object objToDelete = load(obj);
    delete(obj);
}

public Object load(Object obj) {
    return MAPPER.load(Object.class, obj.getId(),
        ConsistentReads.CONSISTENT.config());
}

private void save(Object obj) {
    MAPPER.save(obj, SaveBehavior.CLOBBER.config());
}

private void delete(Object obj) {
    MAPPER.delete(obj);
}

任何帮助/提示/提示都会受到感谢

默认情况下,Dynamodb最终是一致的。创建->阅读->立即删除并不总是有效的

最终一致性读取(默认)-最终一致性 选项可最大化您的读取吞吐量。然而,最终 一致读取可能不会反映最近完成的测试的结果 写所有数据拷贝之间的一致性通常在 一秒钟。短时间后重复读取应返回 更新数据

强一致性读取-除了最终一致性, Amazon DynamoDB还为您提供了请求的灵活性和控制能力 如果您的应用程序或 应用程序,需要它。强一致性读取返回一个结果 这反映了之前收到成功响应的所有写入 阅读


默认情况下,Dynamodb最终是一致的。创建->阅读->立即删除并不总是有效的

最终一致性读取(默认)-最终一致性 选项可最大化您的读取吞吐量。然而,最终 一致读取可能不会反映最近完成的测试的结果 写所有数据拷贝之间的一致性通常在 一秒钟。短时间后重复读取应返回 更新数据

强一致性读取-除了最终一致性, Amazon DynamoDB还为您提供了请求的灵活性和控制能力 如果您的应用程序或 应用程序,需要它。强一致性读取返回一个结果 这反映了之前收到成功响应的所有写入 阅读


为了使整个问题更有趣(奇怪),我创建了一个新的测试用例,结果非常惊人。我的前三个测试用例是testCreate、testUpdate和testDelete。每次操作后,我都会阅读DynamoDB的反馈,以验证我在原始帖子中提到的操作。然后,4h测试用例将创建->获取->删除,这是一个多功能的方法。在第四个测试用例中,按照预期创建项目,然后删除项目。我不知道为什么把它们放在一个方法中会有这么大的不同。Dynamodb最终是一致的。立即创建->读取->删除并不总是有效的。为了使整个问题更有趣(奇怪),我创建了一个新的测试用例,结果非常惊人。我的前三个测试用例是testCreate、testUpdate和testDelete。每次操作后,我都会阅读DynamoDB的反馈,以验证我在原始帖子中提到的操作。然后,4h测试用例将创建->获取->删除,这是一个多功能的方法。在第四个测试用例中,按照预期创建项目,然后删除项目。我不知道为什么把它们放在一个方法中会有这么大的不同。Dynamodb最终是一致的。立即创建->读取->删除并不总是有效的。