2017-04-22 139 views
0

我正在使用移動應用程序查詢Dynamo DB表。我已使用以下查詢從Dynamo DB Test表中獲取項目:查詢Dynamo DB索引:GSI和LSI

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

我的問題是如何查詢全球二級索引中的項目?我已經在Test表的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