Разбивка на страницы с помощью DynamoDBMapper Java AWS SDK
Из документации 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);
Я надеюсь, что мое понимание выше верно при разбивке на страницы с помощью DynamoDBMapper. Во-вторых, откуда мне знать, что я достиг конца результатов. Из документов, если я использую следующие API:
QueryResult result = dynamoDBClient.query((QueryRequest) request);
boolean isEndOfResults = StringUtils.isEmpty(result.getLastEvaluatedKey());
Возвращаясь к использованию DynamoDBMapper, как я могу узнать, достиг ли я конца результатов в этом случае.