我正在运行以下代码:

DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
scanExpression.setLimit(100);
PaginatedScanList<T> list = dynamoDBMapper.scan(clazz, scanExpression);


检查列表的大小时,我得到40,000而不是100。

另外,当遍历列表时,我得到了所有40k项,而不仅仅是100k。

为什么限制不起作用?

使用Java客户端SDK版本1.10.77

最佳答案

这是AWS Java SDK中size()方法PaginatedList<T>的实现,PaginatedScanList<T>进行了扩展:

  @Override
public int size() {
    loadAllResults();
    return allResults.size();
}


调用size()时,是在告诉SDK获取所有扫描结果,而不是检查当前页面的大小。

09-26 07:11