有一个已经回答过的question可以满足我的要求,但是我想要用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;
所以主要是我想附加一个Set,如果不存在,请使用指定的值创建
重要提示
似乎在连接到本地dynamo时不起作用,而在连接到真实的dynamo时却起作用。 :(