2

当我在 dynamoDB 表上运行 DeleteItemRequest 时,我收到一个异常,提示“提供的密钥大小与模式的大小不匹配”。我所做的就是

DeleteItemRequest deleteRequest = new DeleteItemRequest().withTableName(dynamoDbTableName).withKey(key);

client.deleteItem(deleteRequest);

我还需要指定更多内容吗?我错过了什么吗?

4

1 回答 1

2

这可能意味着传递给该方法的键与表中主键的类型不匹配。例如,您传递的是数字键,但表使用字符串键。键的类型取决于创建 AttributeValue 时使用的方法。该方法withN()创建一个数字键,而该方法.withS()创建一个字符串键。

数字键示例:

Key key = new Key().withHashKeyElement(new AttributeValue().withN("120"));

字符串键示例:

Key key = new Key().withHashKeyElement(new AttributeValue().withS("johndoe"));

还有其他类型的方法,比如二进制类型和集合。有关更多详细信息,请参阅AttributeValue 类的 javadoc 。

于 2012-10-08T15:00:35.267 回答