【发布时间】:2012-02-04 15:48:06
【问题描述】:
我正在尝试找出从 Dynamo DB 中的项目中删除属性的最佳方法。以下是我尝试过的,但我收到一个异常,说 N 或 S 类型都不支持 DELETE。
线程“主”状态代码中的异常:400,AWS 服务:AmazonDynamoDB,AWS 请求 ID:09MRO4PVTJ8IK6OHLKSM551REJVV4KQNSO5AEMVJF66Q9ASUAAJG,AWS 错误代码:ValidationException,AWS 错误消息:一个或多个参数值无效:操作 DELETE 不支持N型 在 com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:544) 在 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:284) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:169) 在 >com.amazonaws.services.dynamodb.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:675) 在 >com.amazonaws.services.dynamodb.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:371)
Key pk = new Key(new AttributeValue().withN(Long.toString(123)));
AttributeValueUpdate avu = new AttributeValueUpdate(new AttributeValue().withN("555"), "DELETE");
Map<String, AttributeValueUpdate> m = new HashMap<String, AttributeValueUpdate>();
m.put(String.valueOf(555), avu);
UpdateItemRequest uir = new UpdateItemRequest("users", pk, m);
dynamoDB.updateItem(uir);
一个令人困惑的地方是为什么属性值对于删除很重要。我真的很想删除属性名称和任何关联的值,但在 SDK 中找不到合适的方法。
我们将不胜感激。
【问题讨论】:
-
你能发布实际的异常
-
@Layble:很高兴您自己解决了这个问题 - 您能否将您的解决方案发布为答案并接受它?跟进您自己的问题是完全合理和理想的,只要它首先是一个真正的悬而未决的问题。谢谢:)
标签: java nosql amazon-dynamodb