增量DynamoDB编号字段不会保留

时间:2013-03-12 18:19:03

标签: java amazon-web-services nosql amazon-dynamodb

我有一个带有'count'数字字段的DynamoDB表。我正在使用AttributeAction.ADD递增字段。它可以工作,但是当我重新运行我的应用程序时,它不会增加现有值,而是再次从“1”开始。

我期待:

run #1: 1,2,3,4,5
run #2: 6,7,8,9,10

相反,我看到了:

run #1: 1,2,3,4,5
run #2: 1,2,3,4,5

我做错了什么?这是我在我的应用程序中运行的代码:

        Map<String, AttributeValueUpdate> updateItems = new HashMap<String, AttributeValueUpdate>();

        Key key = new Key().withHashKeyElement(new AttributeValue().withS(targetKey));
        updateItems.put("count",
                new AttributeValueUpdate()
                        .withAction(AttributeAction.ADD)
                        .withValue(new AttributeValue().withN("1")));

        ReturnValue returnValues = ReturnValue.ALL_NEW;

        UpdateItemRequest updateItemRequest = new UpdateItemRequest()
                .withTableName(tableName)
                .withKey(key)
                .withAttributeUpdates(updateItems)
                .withReturnValues(returnValues);


        UpdateItemResult result = dynamoDB.updateItem(updateItemRequest);

1 个答案:

答案 0 :(得分:0)

代码工作正常。我测试了另一个应用没有任何问题。我今天重新开始我的第一个应用程序,它再次运行良好。没有代码更改,因为它位于共享jar中。我猜这个表最初是在第一次运行时创建的。我不确定是什么,因为表创建代码在同一个jar中并且也没有改变。