2016-01-08 3 views
6

मैं किसी आइटम को हटाने के लिए डायनेमो डीबी मैपर का उपयोग कर रहा हूं लेकिन यह सुनिश्चित करना है कि इसे हटाने से पहले यह मौजूद है?क्या मैं इसे पहले लोड किए बिना डायनेमो डीबी मैपर का उपयोग कर एक आइटम हटा सकता हूं?

तो मैं वर्तमान में

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

हाँ, आप कर सकते हैं!

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

करने के लिए:

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

तुम भी com.amazonaws.services.dynamodbv2.document.Table उदाहरण के साथ ऐसा कर सकते हैं:

सीधे शब्दों में आईडी आप हटाना और हटाएँ विधि करने के लिए एक वस्तु के रूप में यह पास करना चाहते हैं के साथ एक वस्तु बनाने एक तालिका का एक उदाहरण बनाएं जिसका आप निम्न उपयोग कर सकते हैं:

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); 
संबंधित मुद्दे