Cassandra忽略了FetchSize

时间:2015-12-11 11:34:05

标签: scala cassandra-2.0 datastax-java-driver

我有一个1000行的cassandra表。我正在使用带有Cassandra 2.1.3的datastax java驱动程序2.1.8

我为准备好的select语句设置了fetchSize为10。 Scala中的代码:

val stmt = preparedStatement.bind()
stmt.setFetchSize(10)
if(nextPage != null )
  stmt.setPagingState(nextPage)

val rs = session.execute(stmt)
println( rs.all().count ) 
val nextPage = rs.getExecutionInfo().getPagingState()

我在每次传递nextPage值的循环中运行它,从空值开始。

但是返回的结果忽略了fetchSize,尽管根据fetchSize创建了PageState对象。每次循环运行的结果计数是...... 1000 990 980 ......等等。

我想要的是每次都返回10个结果的驱动程序。我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

调用all()会自动占用所有剩余页面。有关如何手动获取结果批次的详细信息,请参阅fetchMoreResults上的javadoc。