【问题标题】:Does Accessor of datastax cassandra java driver use pagination?datastax cassandra java驱动的Accessor是否使用分页?
【发布时间】:2017-03-16 19:36:54
【问题描述】:

Datastax 的 cassandra 的 java 驱动程序提供了 Accessor。参考here

参考他们下面的例子,他们是分页和批量获取记录还是有查询超时的风险?

@Accessor
public interface UserAccessor {
    @Query("SELECT * FROM user")
    Result<User> getAll();
}

当我说分页时,他们是否在内部做类似下面的事情

Statement stmt = new SimpleStatement("SELECT * FROM user");
stmt.setFetchSize(24);
ResultSet rs = session.execute(stmt);

【问题讨论】:

    标签: cassandra datastax datastax-java-driver


    【解决方案1】:

    是的,在后台使用了获取大小。驱动程序将根据需要为您自动寻呼。

    您可能希望通过@QueryParameters 设置提取大小。此时默认为5k,见DEFAULT_FETCH_SIZE。

    【讨论】:

    • 谢谢杰夫。如果不通过 @QueryParameters 配置任何东西,知道幕后的默认获取大小是多少?
    • 使用当前默认值更新了答案,并提供了指向其设置的代码的链接。
    • @VinodJayachandran 在接受答案之前您还需要什么?
    【解决方案2】:

    这是我如何在访问器内的@QueryParameters 注释中使用 fetchSize 的示例:

    @Accessor
    public interface UserAccessor {       
    
      @Query("SELECT * FROM users")
      @QueryParameters(fetchSize = 1000)
      Result<User> getAllUsers();
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-29
      • 1970-01-01
      • 2014-06-11
      • 2018-02-15
      • 1970-01-01
      • 2013-09-09
      • 1970-01-01
      • 2017-07-13
      • 2014-05-04
      相关资源
      最近更新 更多