2
我知道這聽起來像一個簡單的問題,但出於某種原因,我無法在線或通過StackOverflow找到明確的答案。如何使用Java刪除DynamoDB中的項目?
我有一個名爲「ABC」的表的DynamoDB。主鍵是「ID」作爲字符串,其他屬性之一是「名稱」作爲字符串。如何使用Java從此表中刪除項目?
AmazonDynamoDBClient dynamoDB;
.
.
.
DeleteItemRequest dir = new DeleteItemRequest();
dir.withConditionExpression("ID = 214141").withTableName("ABC");
DeleteItemResult deleteResult = dynamoDB.deleteItem(dir);
我有一個驗證異常:
Exception in thread "main" com.amazonaws.AmazonServiceException: 1 validation error detected: Value null at 'key' failed to satisfy constraint: Member must not be null (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: RQ70OIGOQAJ9MRGSUA0UIJLRUNVV4KQNSO5AEMVJF66Q9ASUAAJG)
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1160)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:748)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:467)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:302)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:3240)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.deleteItem(AmazonDynamoDBClient.java:972)
at DynamoDBUploader.deleteItems(DynamoDBUploader.java:168)
at Main.main(Main.java:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
如果我需要知道,爲了在DynamoDB表刪除的項目散列鍵,我想我可能需要重新設計我的數據庫,以便有效地刪除項目。
我的表看起來像這樣: 如果是這樣的話,啊......我想我需要重新設計我的數據庫表。
ID | Name | Date | Value
-----------------------------------
1 | TransactionA | 2015-06-21 | 30
2 | TransactionB | 2015-06-21 | 40
3 | TransactionC | 2015-06-21 | 50
基本上,我想輕鬆刪除日期「2015-06-21」的所有交易。我怎樣才能簡單而快速地完成此操作,而無需處理哈希密鑰ID?
謝謝@sharonbn。 – codeshark
問題:我們是否需要知道哈希鍵以刪除DynamoDB表中的項目? – codeshark
嗨,沙龍,我更新了我最初的帖子。你能指導我做最後一部分嗎?基本上,我想輕鬆刪除日期「2015-06-21」的所有交易。我怎樣才能簡單而快速地完成此操作,而無需處理哈希密鑰ID? – codeshark