使用GSI的Dynamo QuerySpec

时间:2017-04-26 00:12:23

标签: java amazon-dynamodb

我的表架构是

virtual_key(hashKey) actual_key(GSI)

现在我正在尝试根据我的actual_key查询索引,如下所示

  final QuerySpec spec = new QuerySpec()
        .withHashKey("actual_key", "1234");
  final Index index = table.getIndex("actual_key");
  final ItemCollection<QueryOutcome> result = index.query(spec);

我很确定项目'actual_key:1234'确实存在于我的表中,但我得到一个空的结果集。 注意:我甚至尝试过

final QuerySpec spec = new QuerySpec()
     .withKeyConditionExpression("actual_key = :v_key")
      .withValueMap(new ValueMap().withString(":v_key","1234"));

我不明白我在哪里弄错了?和 我们可以为GSI使用'.withHashKey'吗?

1 个答案:

答案 0 :(得分:0)

QuerySpec spec = new QuerySpec()
    .withKeyConditionExpression("actual_key = :actualKey")
    .withValueMap(new ValueMap()
        .withString(":actualKey","1234"));

ItemCollection<QueryOutcome> items = index.query(spec);
Iterator<Item> iter = items.iterator(); 
while (iter.hasNext()) {
    System.out.println(iter.next().toJSONPretty());
}