Как мне записать в таблицу AWS DynamoDB? - PullRequest
0 голосов
/ 12 февраля 2020

Когда я пытаюсь записать переменную в таблицу DynamoDB 2.0 в обработке (режим Java), я получаю следующую ошибку:

The provided key element does not match the schema 

Часть кода, которую я написал для этого, - следующее:

DataTable.updateItem("PrimaryKey", "2" , "Score", newNumber);

DataTable - это таблица, PrimaryKey - это имя первичного ключа, 2 - это значение, которое я хочу получить для первичного ключа, "Score" - это имя значение элемента, которое я хочу изменить, и newNumber - это значение, которое я хочу ему дать.

Какую структуру мне нужно использовать в функции updateItem? Посмотрев онлайн-примеры и тому подобное, я попробовал несколько различных структур и попытался использовать, например, переменную PrimaryKey (которая, похоже, не принималась), но я не могу заставить ее работать. Хотя чтение из таблицы работает отлично.

1 Ответ

0 голосов
/ 12 февраля 2020

Метод updateItem имеет несколько перегрузок. Я предполагаю, что вы пытаетесь использовать это: updateItem(String tableName, Map<String,AttributeValue> key, Map<String,AttributeValueUpdate> attributeUpdates).

Попробуйте что-то вроде этого:

dynamodbClient.updateItem(
    "DataTable", 
    Map.of("PrimaryKey", new AttributeValue("2"),
    Map.of("Score", new AttributeValue().withN(newNumber),
);
...