title: What is the difference between PaginatedQueryList and QueryResultPage in DynamoDB?
body: <p>I am currently working with DynamoDB with Java and using <code>DynamoDBMapper</code>. I saw that when we use <code>DynamoDBQueryExpression</code> we can use either <code>PaginatedQueryList</code> or <code>QueryResultPage</code>. If we are using any of them below are the methods we have to use,</p>
  <pre><code>query method - returns a [PaginatedQueryList][1]
  queryPage method - returns a [QueryResultPage][1]
  </code></pre>
  <p><code>PaginatedQueryList</code> says it will first load 1MB of data and if we iterate over then it will load next page if needed and also this is paginated. But what about <code>QueryResultPage</code>? It says it is loading 1MB of data. But what about if we iterate it? Will it load the second page or just only give us 1MB of data? I couldn't find anything about that? And also <code>QueryResultPage</code> gives us the <code>LastEvaluatedKey</code> but <code>PaginatedQueryList</code> not. So is there a way to get the <code>LastEvaluatedKey</code> in <code>PaginatedQueryList</code> or else if we need to get that key do we have to always use the <code>QueryResultPage</code>?</p>
  <p>And also instead of the following code,</p>
  <pre><code>PaginatedQueryList&lt;Data&gt; data = dynamoDBMapper.query(Data.class, queryExpression);
  </code></pre>
  <p>If we use the following,</p>
  <pre><code>List&lt;Data&gt; data = dynamoDBMapper.query(Data.class, queryExpression);
  data.size();
  </code></pre>
  <p>Will it load the all data found in DB? What if I use <code>stream()</code> instead of <code>data.size()</code> will it load all?</p>