2016-10-20 19 views
5

DynamoDBMapperを使用してDynamoDBアイテムを更新するにはどうすればよいですか?JavaのDynamoDBMapperを使用してDynamoDBアイテムを更新する

DynamoDBテーブルを使用して複数のプロセスがあるため、get + saveによって矛盾が生じます。 DynamoDBMapperを使用してアイテムを更新する方法が見つかりません。

答えて

10

save()方法を実行するputItem又はupdateItemSaveBehaviorに設定された値に基づきます。以下の説明を参照してください。この理由により、DynamoDBMapperクラスには更新メソッドはありません。ただし、個別の削除方法があります。

DynamoDBにアイテムを保存します。

UPDATE(デフォルト): UPDATEではないであろう使用されるサービス方法は によりAmazonDynamoDB.putItem(PutItemRequest)または AmazonDynamoDB.updateItem(UpdateItemRequest)のいずれかを使用するDynamoDBMapperConfig.getSaveBehavior()値を、決定され保存操作のモデル化されていない属性に影響し、モデル化された属性のNULL値は であり、 DynamoDBの項目から削除されます。 updateItem要求の制限のため、 オブジェクトが保存されているときに のUPDATE実装はputItem要求を送信し、 の場合は別のupdateItem要求を送信します。

UPDATE_SKIP_NULL_ATTRIBUTES:同様に、それは を無視することを除いて更新するために、任意のNULL値の属性(複数可)と DynamoDBの中にその項目からそれらを削除しません。オブジェクトがキーのみであるかどうかにかかわらず、updateItem 要求を1つだけ送信することも保証されます。

CLOBBER: CLOBBER は、すべての属性をクリアして置き換えられます、モデル化されていないものを含め、 (削除して再作成する)保存に。バージョン管理されたフィールド制約は も無視されます。 saveExpressionパラメータ で指定されたオプションは、バージョン属性によってすべての制約にオーバーレイされます。

使用例: -

DynamoDBMapperConfig dynamoDBMapperConfig = new DynamoDBMapperConfig(SaveBehavior.UPDATE); 
dynamoDBMapper.save(yourObject, dynamoDBMapperConfig); 
+1

これは答えとしてマークする必要があります。 – WMios

+0

私はそれをもう一度。 –

0

があなたのダイナモデシベルの書き込み操作の一貫性を持っているあなたは、オプティミスティック・ロックと条件付き書き込みの間に1つのオプションを選択する必要があります。

ここには、AWSドキュメントへのリンクがあります。

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBMapper.OptimisticLocking.html

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.SpecifyingConditions.html

関連する問題