从API文档中,dynamo db确实支持扫描和查询操作的分页.这里的问题是将ExclusiveStartIndex当前请求设置LastEvaluatedIndex为先前请求的值,以获得结果的下一组(逻辑页).
我正在尝试实现相同但我正在使用DynamoDBMapper,这似乎有更多的优点,如与数据模型紧密耦合.所以,如果我想做上述事情,我假设我会做以下事情:
// Mapping of hashkey of the last item in previous query operation
Map<String, AttributeValue> lastHashKey = ..
DynamoDBQueryExpression expression = new DynamoDBQueryExpression();
...
expression.setExclusiveStartKey();
List<Table> nextPageResults = mapper.query(Table.class, expression);
Run Code Online (Sandbox Code Playgroud)
我希望我的上述理解在使用DynamoDBMapper进行分页时是正确的.其次,我怎么知道我已经到了结果的末尾.如果我使用以下api,请从文档中获取:
QueryResult result = dynamoDBClient.query((QueryRequest) request);
boolean isEndOfResults = StringUtils.isEmpty(result.getLastEvaluatedKey());
Run Code Online (Sandbox Code Playgroud)
回到使用DynamoDBMapper,我怎么知道在这种情况下我是否达到了结果的结尾.