Когда я пытаюсь получить разбитый на страницы набор данных из моей таблицы DynamoDB, он работает отлично, но только если данные, которые он ищет, находятся вверху таблицы. Если он глубже (у меня есть данные, отсортированные по user_alias, по 100 элементов для каждого псевдонима), он ничего не возвращает.
AmazonDynamoDB dynamo = AmazonDynamoDBClientBuilder.standard()
.withCredentials(
new AWSStaticCredentialsProvider(
new BasicAWSCredentials(
"XXXXXXX",
"XXXXXXX")))
.build();
DynamoDBMapper mapper = new DynamoDBMapper(dynamo);
Map<String, AttributeValue> expressionAttributeValues = new HashMap<>();
expressionAttributeValues.put(":user", new AttributeValue().withS(request.getUser().getAlias()));
ScanResultPage<DatabaseFeedObject> feedEntry;
feedEntry = mapper.scanPage(
DatabaseFeedObject.class,
new DynamoDBScanExpression()
.withFilterExpression("user_alias = :user")
.withLimit(request.getLimit())
.withExpressionAttributeValues(expressionAttributeValues));
//feedEntry.getResults() returns nothing,
//but feedEntry.getLastEvaluatedKey() returns an
//element in the table that does not fit the original query.
Моей первой мыслью было просто продолжать выполнение запроса, пока я не достигну предела. хочу, но это быстро станет неэффективным и дорогостоящим. Есть ли другой способ сделать это?