首页 文章

DynamoDB - DynamoDBMapper查询并获取整个结果集

提问于
浏览
0

我正在使用哈希键查询DynamoDB表 . 表中的每个记录由散列键和范围键唯一标识

DynamoDBMapper mapper;
....
MyClass myClass = new MyClass();
myClass.setHashKey(hashKey);
DynamoDBQueryExpression<MyClass> queryExpression = new DynamoDBQueryExpression<MyClass>()
                                                 .withHashKeyValues(myClass);
PaginatedQueryList<MyClass> entries = mapper.query(MyClass.class, queryExpression);
//Work with the elements of entries

当结果集超过1MB时,如何检索其余部分 . 我找不到任何方法来获取文档中提到的 LastEvaluatedKey .

1 回答

  • 0

    AWS SDK for Dynamodb Mapper为您处理分页 . 它在内部查询数据库,当您需要超过1MB的数据时,它会再次查询并获取数据 . 如果您想要一次性使用完整列表,则可以使用大小等操作或将分页结果复制到列表中,这将需要映射器获取完整结果 . 简而言之,您无需担心LastEvaluatedKey及其处理方式 .

    示例,PaginatedQueryList resultPaginatedList = dynamoDBMapper.query(getModelClass(),queryExpression);

    List<T> queryList = new LinkedList<>(resultPaginatedList); //--- Line1
     logger.info("Total elements found: " + queryList.size());  //--- Line2
    

    第1行和第2行都描述了映射器将获取完整结果的操作(通过查询由SDK处理的多次)而不仅仅是1MB .

相关问题