2017-04-22 14 views
0

モバイルアプリケーションを使用してDynamo DBテーブルを照会しています。私は以下のクエリを使用して、Dynamo DB Testテーブルからアイテムを取得しました。Dynamo DBインデックスの照会:GSIおよびLSI

Test t = mapper.load(Test.class、DynamoDBHashKey、DynamoDBRangeKey);

私の質問は、グローバルセカンダリインデックスから項目をクエリする方法です。私は、テストテーブルのJavaクラスでアノテーションとパラメータを正しく定義しました。

グローバルセカンダリインデックスとローカルセカンダリインデックスを照会する他の方法はありますか。

答えて

1

load apiはGSIのクエリに使用できません。 クエリAPIを使用して、キー属性を使用してGSIに問い合わせることができます。

サンプルコード: -

Map<String, AttributeValue> vals = new HashMap<>(); 
      vals.put(":val1", new AttributeValue().withS("somevalue")); 

DynamoDBQueryExpression<modelclass> queryExp = new DynamoDBQueryExpression<modelclass>() 
        .withKeyConditionExpression("category = :val1").withIndexName("indexname") 
        .withExpressionAttributeValues(vals); 

dynamoDBMapper.query(modelclass.class, queryExp); 

DynamodbQueryExpression class

関連する問題