我正在用Java和DynamoDBMapper的幫助來查詢DynamoDB中的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