У меня есть таблица DynamoDB с полем «count» Number. Я увеличиваю поле с помощью AttributeAction.ADD. Он работает, но когда я снова запускаю приложение, он не увеличивает существующее значение, вместо этого оно начинается с «1».Инкрементный номер поля DynamoDB не сохраняется
Я ожидаю:
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);
Код выглядит хорошо. Что такое targetKey? возможно, это другое? –
targetKey является основным элементом таблицы. Это просто переменная, переданная в этот код. – TERACytE