Amazon web services Dynamo DB:使用HashKey+删除表中的条目;范围
我有一个带有Hashkey+RangeKey的DynamoDB表。删除给定HashKey和RangeKey的条目时,我面临以下错误 尝试了以下方法Amazon web services Dynamo DB:使用HashKey+删除表中的条目;范围,amazon-web-services,amazon-dynamodb,delete-operator,Amazon Web Services,Amazon Dynamodb,Delete Operator,我有一个带有Hashkey+RangeKey的DynamoDB表。删除给定HashKey和RangeKey的条目时,我面临以下错误 尝试了以下方法 使用DynamoDBMapper从数据库中获取记录(Obj),使用DynamoDBQueryExpression,该表达式在KeyCondition中同时包含HashKey和RangeKey。执行了dynamoDBMapper.delete(Obj) 请参阅其他已发布和试用的 HashMap eav=newhashmap(); eav.put(“:v
DynamoDBQueryExpression
,该表达式在KeyCondition中同时包含HashKey和RangeKey。执行了dynamoDBMapper.delete(Obj)
HashMap eav=newhashmap();
eav.put(“:v1”,新的AttributeValue().with(value));
DynamoDBQueryExpression queryExpression=新建DynamoDBQueryExpression()
.withKeyConditionExpression(“documentId=:v1”)
.带有表达式属性值(eav);
List ddbResults=dynamoDBMapper.query(DocumentTable.class,queryExpression);
dynamoDBMapper.batchDelete(ddbResults);
在上述两种情况下,我看到以下例外情况
com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The provided key element does not match the schema (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException; Request ID: I12MUB0FSQNAQT6AH0RHE1B12JVV4KQNSO5AEMVJF66Q9ASUAAJG)
- 如果有人有类似问题,请提供帮助
- 是否不建议使用复合密钥(如HashKey和SortKey)
documentId
指定一个项。错误试图告诉您documentId
不是表中键的名称
用表中键的名称替换
documentId
。您试图通过为键documentId
指定一个项。错误试图告诉您documentId
不是表中键的名称
用表中键的名称替换
documentId
。谢谢。我找到了解决办法。虽然我不确定确切的原因,但这就是我的代码1的问题所在。我正在使用Spring-org.springframework.data.repository.crudepository 2。这迫使我使用@Id,我无法用适当的注释@DynamoDBRangeKey标记我的RangeKey
。还有一篇文章讨论了这个问题-修复:停止使用crudepository,这帮助我正确标记RangeKey。使用dynamoDBMapper进行DB操作谢谢。我找到了解决办法。虽然我不确定确切的原因,但这就是我的代码1的问题所在。我正在使用Spring-org.springframework.data.repository.crudepository 2。这迫使我使用@Id,我无法用适当的注释@DynamoDBRangeKey标记我的RangeKey
。还有一篇文章讨论了这个问题-修复:停止使用crudepository,这帮助我正确标记RangeKey。使用dynamoDBMapper进行数据库操作