2012-10-08 3 views
2

Lorsque j'exécute une demande DeleteItemRequest sur une table dynamoDB, j'obtiens une exception qui indique que "la taille de la clé fournie ne correspond pas à celle du schéma". Tout ce que je fais estComment faire pour exécuter DeleteItemRequest sur dynamoDB?

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

client.deleteItem(deleteRequest);

Ai-je besoin de préciser quelque chose de plus? Est-ce que je manque quelque chose?

Répondre

2

Cela peut signifier que la clé transmise à la méthode ne correspond pas au type de la clé primaire dans la table. Par exemple, vous transmettez une clé numérique mais la table utilise une clé de chaîne. Le type de la clé dépend de la méthode utilisée lors de la création de AttributeValue. La méthode withN() crée une clé numérique, tandis que la méthode .withS() crée une clé de chaîne.

exemple clé numérique:

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

cordes exemple clé:

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

Il existe des méthodes pour d'autres types aussi bien, comme les types binaires et ensembles. Voir le javadoc for the AttributeValue class pour plus de détails.

Questions connexes