2016-01-08 10 views
6

私は、アイテムを削除するためにDynamoDBマッパーを使用していますが、削除する前にそれが存在することを確認しなければなりませんか?DynamoDB Mapperを使用して項目を最初にロードせずに削除できますか?

最初にそれをロードせずにアイテムを削除する方法があるのであれば、私は現在、

public void delete(final String hashKey, final Long rangeKey) { 
    final Object obj = mapper.load(Object.class, hashKey, rangeKey); 
    if (obj != null) { 
     mapper.delete(obj); 
    } 
} 

をやっていますか?商品が見つからなかった場合、黙って返信してほしい

答えて

4

はい、できます!

単に削除し、削除方法をオブジェクトとして渡したいIDを持つオブジェクトを作成します。

... 
MyObject object = new MyObject(); 
object.setHashKey(hashKey); 
object.setRangeKey(rangeKey); 
mapper.delete(object); 
.... 
2

あなたはまた、com.amazonaws.services.dynamodbv2.document.Tableインスタンスでこれを行うことができます。

table.deleteItem("hashKeyAttributeName", hashKey, "rangeKeyAttribureName", rangeKey); 

へテーブルのインスタンスを作成する場合は、次を使用できます。

BasicAWSCredentials credentials = new BasicAWSCredentials(amazonAWSAccessKey, amazonAWSSecretKey); // set access and secret keys 
AmazonDynamoDB amazonDynamoDB = AmazonDynamoDBClientBuilder.standard() 
     .withCredentials(new AWSStaticCredentialsProvider(credentials)) 
     .withRegion("us-west-1") // set aws region 
     .build(); 
Table table = new DynamoDB(amazonDynamoDB).getTable(tableName); 
関連する問題