3

AWS Dynamo チュートリアルの次の例、 Step 3: Put, Update, and Delete an Item をローカルで実行しようとしています。

私の場合、それは次のとおりです。

val client: AmazonDynamoDBClient = new AmazonDynamoDBClient().withEndpoint("http://localhost:7777")

val dynamoDB: DynamoDB = new DynamoDB(client)

val  table: Table = dynamoDB.getTable("Catalog")

try {

    val rating: java.util.List[Float] = new java.util.LinkedList[Float]()

    rating.add(1)

    val newItem: Item = new Item().withPrimaryKey("Title", "Title here").withInt("Country", 1).
        withList("Ratings", rating)

    val outcome: PutItemOutcome = table.putItem(newItem)

    System.out.println("PutItem succeeded:\n" + outcome.getPutItemResult)

    } catch {

       case exception: Exception => System.out.println(exception.getMessage)

}

出力は次のとおりです。

PutItem は成功しました: {}

ローカルの DynamoDB コンソールで:

var params = { 
TableName: "Catalog",
Key: {
    "Title":"Title Here",
}
};

docClient.get(params, function(err, data) {
  if (err)
    console.log(JSON.stringify(err, null, 2));
  else
    console.log(JSON.stringify(data, null, 2));
});

出力:

{ "アイテム": { "タイトル": "ここにタイトル", "評価": [ 1 ], "国": 1 } }

4

1 に答える 1

2

ReturnValues返される値を取得するには、PutItem リクエストで を設定する必要がありますがALL_OLD、それでも、置き換えられた値しかありません。

http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html#DDB-PutItem-request-ReturnValues

あなたのコードでは、置換のようなことをする必要があります

val outcome: PutItemOutcome = table.putItem(newItem)

val putItemSpec: PutItemSpec = new PutItemSpec()
    .withItem(newItem)
    .withReturnValues(ReturnValue.ALL_OLD)
val outcome: PutItemOutcome = table.putItem(putItemSpec)
于 2016-04-20T13:53:56.323 に答える