仅当对象不存在时,DynamoDBMapper才会保存

Nos*_*tap 5 java amazon-web-services amazon-dynamodb

使用Java DynamoDBMapper,如何仅在对象尚不存在时保存对象(基于主键).如果确实存在,我想要抛出异常或失败,而不是更新现有条目.

tdd*_*key 8

我相信你应该能够使用可以应用于映射器的DynamoDbSaveExpression对象.

有一个在AWS网站的教程在这里如下图所示,代码:

try {
    DynamoDBSaveExpression saveExpression = new       DynamoDBSaveExpression();
    Map expected = new HashMap();
    expected.put("status", new ExpectedAttributeValue().withExists(false));

    saveExpression.setExpected(expected);

    mapper.save(obj, saveExpression);
} catch (ConditionalCheckFailedException e) {
    // This means our save wasn't recorded, since our constraint wasn't met
    // If this happens, the worker can simply look for a new task to work on
}
Run Code Online (Sandbox Code Playgroud)

  • 不应该与exists(假)? (2认同)