当我在 dynamoDB 表上运行 DeleteItemRequest 时,我收到一个异常,提示“提供的密钥大小与模式的大小不匹配”。我所做的就是
DeleteItemRequest deleteRequest = new
DeleteItemRequest().withTableName(dynamoDbTableName).withKey(key);
client.deleteItem(deleteRequest);
我还需要指定更多内容吗?我错过了什么吗?
当我在 dynamoDB 表上运行 DeleteItemRequest 时,我收到一个异常,提示“提供的密钥大小与模式的大小不匹配”。我所做的就是
DeleteItemRequest deleteRequest = new
DeleteItemRequest().withTableName(dynamoDbTableName).withKey(key);
client.deleteItem(deleteRequest);
我还需要指定更多内容吗?我错过了什么吗?
这可能意味着传递给该方法的键与表中主键的类型不匹配。例如,您传递的是数字键,但表使用字符串键。键的类型取决于创建 AttributeValue 时使用的方法。该方法withN()
创建一个数字键,而该方法.withS()
创建一个字符串键。
数字键示例:
Key key = new Key().withHashKeyElement(new AttributeValue().withN("120"));
字符串键示例:
Key key = new Key().withHashKeyElement(new AttributeValue().withS("johndoe"));
还有其他类型的方法,比如二进制类型和集合。有关更多详细信息,请参阅AttributeValue 类的 javadoc 。