Я пытаюсь запросить DynamoDB с помощью DynamoDBMapper в Java с как hashKey, так и rangeKey. Но я не получаю никаких результатов, он возвращает только часть его. Мой код выглядит следующим образом:Как получить все элементы из разбитого на страницу результата запроса DynamoDBMapper()?
queryDynamoDb() {
Condition rangeKeyCondition = new Condition()
.withComparisonOperator(ComparisonOperator.GT.toString())
.withAttributeValueList(new AttributeValue().withS("0"));
DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression(
new AttributeValue().withS(prefKey));
queryExpression.setRangeKeyCondition(rangeKeyCondition);
List<MyObj> myobjs = mapper.query(MyObj.class, queryExpression);
return myobjs;
}
MyObj
правильно помечается DynamoDB аннотациями. Поэтому я могу сохранить объекты, но поиск возвращает только частичный результат.
Документация запроса в DynamoDBMapper говорит:
метод запрос возвращает «ленивую нагруженный» коллекцию. То есть сначала он возвращает только одну страницу результатов. При необходимости он выполняет вызов службы на следующей странице.
Теперь вопрос заключается в том, как рассказать картографу о выполнении служебного вызова или о необходимости создания страницы, чтобы она загружала все страницы (фактически все записи)?
Открыто, я согласен с вашим ответом. Похоже, я вхожу в ту же проблему. Вопрос здесь, https://stackoverflow.com/questions/45495145/issue-with-caching-and-dynamo-db-combination – Deepak