我正在开发基于Apache Cassandra的Spring应用程序。我使用作为持久化层。当我试图获取一个非零页面(如文档中所描述的)时,我得到了一个IllegalArgumentException,它表示不能为第一个页面(0)之外的索引页面创建一个Cassandra页面请求。它是从,
public static CassandraPageRequest of(int page, int size) {
Assert.isTrue(page == 0, "Cannot create a Cassandra page request for an indexed page other than the first page (0).");
return of(page, size, Sort.unsorted());
}图书馆的方法。
我是不是在做违反Cassandra设计/使用原则的事情?
这是否意味着被设计为只从第一页获取数据,如果我们想要下一个页面,那么我们必须缓存pageState并获取下一个页面吗?
为什么这个框架不允许获取其他页面呢?
是建筑原因还是技术原因?(文档不提供这些信息。至少我们需要使用页面状态来获取下一个状态。)
发布于 2018-04-15 15:31:18
Cassandra只通过获取下一页来支持分页。限制/抵消不适用。
Cassandra存储库支持对实体的分页和排序访问。Cassandra分页需要分页状态才能仅在页面中进行导航。片跟踪当前的分页状态,并允许创建一个可用于请求下一页的页面。
尽管如此,你的问题的答案
这是否意味着被设计为只从第一页获取数据,如果我们想要下一个页面,那么我们必须缓存pageState并获取下一个页面吗?
是的。
Spring数据中的分页是通过限制/偏移进行分页的,因为大多数支持的数据存储都遵循这种模式。卡桑德拉的分页采用了更多的Iterator风格。
https://stackoverflow.com/questions/49843590
复制相似问题