Paginação com DynamoDBMapper Java AWS SDK
A partir dos documentos da API, o dynamo db suporta paginação para operações de verificação e consulta. O problema aqui é definir oExclusiveStartIndex
da solicitação atual ao valor doLastEvaluatedIndex
da solicitação anterior para obter o próximo conjunto (página lógica) de resultados.
Estou tentando implementar o mesmo, mas estou usandoDynamoDBMapper
, que parece ter muito mais vantagens, como um acoplamento rígido com modelos de dados. Portanto, se eu quisesse fazer o acima, presumo que faria algo como abaixo:
// 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);
Espero que meu entendimento acima esteja correto ao paginar usando o DynamoDBMapper. Em segundo lugar, como eu saberia que cheguei ao fim dos resultados. Dos documentos, se eu usar a seguinte API:
QueryResult result = dynamoDBClient.query((QueryRequest) request);
boolean isEndOfResults = StringUtils.isEmpty(result.getLastEvaluatedKey());
Voltando ao uso do DynamoDBMapper, como posso saber se cheguei ao final dos resultados neste caso.