我有一个消息表,我希望获得该用户的最后10条消息,如果他们点击更多,它将检索另一个10,直到没有剩余消息。我无法看到如何做到这一点,到目前为止我能够根据时间得到消息,但这不是我想要的。通过阅读文档,我可以看到一个名为LastEvaluatedKey
的方法,但是在哪里以及如何使用它我无法找到一个有效的例子。这是我的时间代码:
long startDateMilli = (new Date()).getTime() - (15L*24L*60L*60L*1000L);
long endDateMilli = (new Date()).getTime() - (5L*24L*60L*60L*1000L);
java.text.SimpleDateFormat df = new java.text.SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
String startDate = df.format(startDateMilli);
String endDate = df.format(endDateMilli);
QuerySpec spec = new QuerySpec()
.withProjectionExpression("to,fr,sta,cr")
.withKeyConditionExpression("to = :v_to and cr between :v_start_dt and :v_end_dt")
.withValueMap(new ValueMap()
.withString(":v_id", username)
.withString(":v_start_dt", startDate)
.withString(":v_end_dt", endDate));
ItemCollection<QueryOutcome> items = table.query(spec);
System.out.println("\nfindRepliesPostedWithinTimePeriod results:");
Iterator<Item> iterator = items.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next().toJSONPretty());
}
如何修改此选项以消除基于时间的分页并使用最后10种消息类型的分页?