Tôi đang cố gắng truy vấn DynamoDB với trợ giúp của DynamoDBMapper bằng Java với cả hashKey và rangeKey. Nhưng tôi không nhận được tất cả các kết quả, nó chỉ trả về một phần của nó. Mã của tôi trông giống như:Làm cách nào tôi có thể truy xuất tất cả các mục từ kết quả được phân trang của truy vấn 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
được chú thích đúng với chú thích DynamoDB. Vì vậy, tôi có thể lưu các đối tượng, nhưng truy xuất trả về một phần kết quả duy nhất.
Các tài liệu của truy vấn trong DynamoDBMapper nói:
Phương pháp truy vấn trả về "lười biếng-nạp" bộ sưu tập. Tức là, ban đầu nó chỉ trả lại một trang kết quả. Nó làm cho một cuộc gọi dịch vụ cho trang tiếp theo khi cần thiết.
Bây giờ câu hỏi là, cách yêu cầu người lập bản đồ thực hiện cuộc gọi dịch vụ hoặc trang cần thiết, vì vậy nó tải tất cả các trang (có hiệu quả tất cả các mục)?
Mở, tôi đồng ý với câu trả lời của bạn, Có vẻ như tôi đang gặp vấn đề tương tự. Câu hỏi ở đây, https://stackoverflow.com/questions/45495145/issue-with-caching-and-dynamo-db-combination – Deepak