datastax cassandra java 驱动程序的访问器是否使用分页?
Does Accessor of datastax cassandra java driver use pagination?
Datastax 的 java cassandra 驱动程序提供了访问器。参考 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);
是的,在幕后使用了获取大小。 driver 将根据需要自动为您寻呼。
您可能希望通过 @QueryParameters. The default at this time is 5k, see DEFAULT_FETCH_SIZE 设置获取大小。
这是我如何在访问器的@QueryParameters 注释中使用 fetchSize 的示例:
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM users")
@QueryParameters(fetchSize = 1000)
Result<User> getAllUsers();
}
Datastax 的 java cassandra 驱动程序提供了访问器。参考 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);
是的,在幕后使用了获取大小。 driver 将根据需要自动为您寻呼。
您可能希望通过 @QueryParameters. The default at this time is 5k, see DEFAULT_FETCH_SIZE 设置获取大小。
这是我如何在访问器的@QueryParameters 注释中使用 fetchSize 的示例:
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM users")
@QueryParameters(fetchSize = 1000)
Result<User> getAllUsers();
}