Уже есть ответ на вопрос , который делает то же самое, что я хочу, но я хочу это на Java, но я не могу это сделать, пожалуйста, подскажите, пожалуйста, кто-то подскажет, как это сказать на Java
aws dynamodb update-item --table-name predict \
--key '{"id": {"S": "keyname"}}' \
--update-expression "ADD attributename :attributevalue" \
--expression-attribute-values '{":attributevalue": {"SS": ["value1", "value2"]}}'
Это работает с CLI, и делайте, что я хочу, я пытался с этим:
UpdateItemSpec updateItemSpec = new UpdateItemSpec()
.withPrimaryKey("id", "keyname")
.withUpdateExpression("add attributename :attributevalue")
.withValueMap(new ValueMap().withStringSet("attributevalue", "value1", "value2"))
.withReturnValues(ReturnValue.ALL_NEW);
dynamoDB.getTable(DYNAMO_TABLE_NAME).updateItem(updateItemSpec);
Я получил следующее сообщение об ошибке:
java.lang.NoSuchMethodError: com.amazon.dynamodb.grammar.DynamoDbExpressionParser.parseUpdate(Ljava/lang/String;Lorg/antlr/v4/runtime/ANTLRErrorListener;)Lorg/antlr/v4/runtime/tree/ParseTree;
Поэтому в основном я хочу добавить набор, и, если он не существует, создать с указанными значениями
Важное примечание
Похоже, он не работает при подключении к динамо- локально и работает при подключении к настоящему динамо.(