亚马逊 DynamoDB putItem 返回 null

4
我正在使用AmazonDynamoDBClient putItem方法向数据库中插入项目。putItem的返回类型是PutItemResult,但我得到的是null。
AmazonDynamoDBClient client = new AmazonDynamoDBClient();
PutItemRequest r = new PutItemRequest();
r.addItemEntry("custId",new Attribute Value("101"));
PutItemResult result = client.putItem(r);
//result is null

在数据库中成功插入了项目,但为什么结果为空?

1个回答

8
请根据您的需求指定RETURN_VALUE,默认值为NONE

ReturnValues - (String) 如果您希望在使用PutItem请求更新属性之前查看它们的旧值,请使用ReturnValues。对于PutItem,有效值为:

NONE - 如果未指定ReturnValues或其值为NONE,则不返回任何内容。(这是ReturnValues的默认设置。)ALL_OLD - 如果PutItem覆盖了一个属性名称-值对,则返回旧项的内容。注意:ReturnValues参数被几个DynamoDB操作使用;但是,PutItem除NONE或ALL_OLD以外的其他值都不被识别。

来自API文档:

public PutItemRequest(String tableName,
                      Map<String,AttributeValue> item,
                      String returnValues)

设置返回值

ReturnValues参数在多个DynamoDB操作中都有使用;但是,PutItem操作只能识别NONE或ALL_OLD值。

ALL_NEW、UPDATED_NEW和UPDATED_OLD仅适用于UpdateItem操作。

UPDATED_OLD - 返回仅更新前的属性。

ALL_NEW - 返回所有项目属性,包括更新后的属性。

UPDATED_NEW - 返回仅更新后的属性。


PutItem只识别NONE或ALL_OLD之外的任何值,那么为什么还存在ALL_NEW和其他ReturnValues呢?如果我第一次插入一个项目并希望返回相同的项目怎么办? - Rohit Chouhan
更新了其他返回值的答案。它们是针对更新项目特定的。 - notionquest
明白了。谢谢! - Rohit Chouhan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接