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 に答える