クエリを実行しているエンティティにはHashKey
& RangeKey
(数値) があります。使用batchGetItem
すると、次のエラーが発生します。
AWS エラー コード: ValidationException、AWS エラー メッセージ: 1 つ以上のパラメータ値が無効でした: ロケーションとスキーマの間で属性タイプが一致しません
スキーマ:
表: 日次
ハッシュキー: CustId (文字列)
範囲キー: 日付 (数字)
データ:
CustId : VisioNerdy
日付 : 1329071400000
コード:
List<Key> fkeys = new ArrayList<Key>(); //tableName="Daily", keys=["VisioNerdy"], ranges=[1329071400000] Map<String, KeysAndAttributes> requestItems = new HashMap<String, KeysAndAttributes>(); for(int i = 0; i < keys.size(); i++) { String key = keys.get(i); if(ranges == null) fkeys.add(new Key().withHashKeyElement(new AttributeValue().withS(key))); else fkeys.add(new Key().withHashKeyElement(new AttributeValue().withS(key)) .withRangeKeyElement(new AttributeValue().withS(ranges.get(i).toString()))); } requestItems.put(tableName, new KeysAndAttributes().withKeys(fkeys)); BatchGetItemRequest batchGetItemRequest = new BatchGetItemRequest().withRequestItems(requestItems); BatchGetItemResult result = client.batchGetItem(batchGetItemRequest);
手がかりはありますか?