【发布时间】:2021-07-30 15:33:38
【问题描述】:
我目前正在使用带有 Java 和 DynamoDBMapper 的 DynamoDB。我看到当我们使用DynamoDBQueryExpression 时,我们可以使用PaginatedQueryList 或QueryResultPage。如果我们使用下面的任何一个是我们必须使用的方法,
query method - returns a [PaginatedQueryList][1]
queryPage method - returns a [QueryResultPage][1]
PaginatedQueryList 表示它将首先加载 1MB 的数据,如果我们迭代,它会在需要时加载下一页,并且这是分页的。但是QueryResultPage 呢?它说它正在加载 1MB 的数据。但是如果我们迭代它呢?它会加载第二页还是只给我们 1MB 的数据?我找不到任何关于它的东西?还有QueryResultPage 给了我们LastEvaluatedKey 但PaginatedQueryList 没有。那么有没有办法在PaginatedQueryList 中获取LastEvaluatedKey,否则如果我们需要获取该密钥,我们是否必须始终使用QueryResultPage?
而且也代替下面的代码,
PaginatedQueryList<Data> data = dynamoDBMapper.query(Data.class, queryExpression);
如果我们使用以下,
List<Data> data = dynamoDBMapper.query(Data.class, queryExpression);
data.size();
它会加载在数据库中找到的所有数据吗?如果我使用 stream() 而不是 data.size() 会加载所有内容吗?
【问题讨论】:
标签: java amazon-dynamodb dynamodb-queries