idsを持つアイテムのリストのデータを返すタスクが与えられました。私はこれらのIDの100を言うのリストを持っているし、SQLで作品にする方法と同じように詳細を返すように照会するJavaのDynamoDbに相当するSQL IN
"KeySchema" [
0: {
"AttributeName":"id"
"KeyType":"HASH"
"TableStatus":"ACTIVE"
... :テーブルは以下のように定義IDを持っています。
私は多くのアプローチを試しましたが、提供されたリストのIDのすべてのドキュメントを返すDynamoDBインスタンスに対して1つのクエリを作成する方法はありません。
私はDynamoDBMapperを使用したいと考えています。
DynamoDBQueryExpression
にwithHashKeyValues
が見つかったとき、私は大当たりを打つと思った。
DynamoDBQueryExpression<MyObject> ddqe;
...
for (String idStr : idList) {
MyObject mo= new MyObject();
mo.setId(idStr);
ddqe.withHashKeyValues(mo);
}
が、方法が言う注釈が存在し、複数のですが、コードを見て:
Note 1: Currently the DynamoDBMapper supports only one value per hash key.
私は(他の多くのものの中で)
Condition condition = new Condition();
condition.withAttributeValueList(filters);
condition.withComparisonOperator(ComparisonOperator.EQ);
を条件にも試してみましたが、 filtersはidのArrayListです。
これをDynamoDbで実行する方法はありますか、または既知のIDごとにDBに個別にクエリする必要がありますか? 100のクエリをデータストアに発行しますか?