kundera-cassandra 中的分页
Pagination in kundera-cassandra
我正在使用 kundera-cassandra (V3.2) 并想限制 select 查询。这正在使用以下代码:
TypedQuery<T> query = manager.createQuery(criteriaQuery);
query.setMaxResults(limit);
我的问题是设置启动参数。我找到了方法
query.setFirstResult(start);
但它不起作用。是否有任何解决方案可以告诉 select 查询从哪里开始?我不能在应用程序级别执行此操作,因为查询由 REST 服务方法使用。
您正在查找 limit, offset
个查询,但 Kundera-Cassandra
不支持它们,因为 Cassandra 本身不支持。
Kundera 通过 Datastax 驱动程序支持 Cassandra 分页。
以下摘自 Kundera readmes:
分页: 您可以使用 Datastax 驱动程序通过 ResultIterator 对从 Cassandra 获取的查询结果进行分页:
String queryString= "Select t from Token t";
com.impetus.kundera.query.Query query = (com.impetus.kundera.query.Query) em.createQuery(queryString,
Token.class);
query.setFetchSize(fetchSize);
int count=0;
Iterator<Token> tokens = query.iterate();
while(tokens.hasNext())
{
...
}
我正在使用 kundera-cassandra (V3.2) 并想限制 select 查询。这正在使用以下代码:
TypedQuery<T> query = manager.createQuery(criteriaQuery);
query.setMaxResults(limit);
我的问题是设置启动参数。我找到了方法
query.setFirstResult(start);
但它不起作用。是否有任何解决方案可以告诉 select 查询从哪里开始?我不能在应用程序级别执行此操作,因为查询由 REST 服务方法使用。
您正在查找 limit, offset
个查询,但 Kundera-Cassandra
不支持它们,因为 Cassandra 本身不支持。
Kundera 通过 Datastax 驱动程序支持 Cassandra 分页。
以下摘自 Kundera readmes:
分页: 您可以使用 Datastax 驱动程序通过 ResultIterator 对从 Cassandra 获取的查询结果进行分页:
String queryString= "Select t from Token t";
com.impetus.kundera.query.Query query = (com.impetus.kundera.query.Query) em.createQuery(queryString,
Token.class);
query.setFetchSize(fetchSize);
int count=0;
Iterator<Token> tokens = query.iterate();
while(tokens.hasNext())
{
...
}