How Do I Set Paging Query with Java?
Specifying the Number of Rows Fetched in Each Page
The fetch size specifies how many rows will be fetched at once. When you create a cluster connection, you can set a fetch size for it.
Cluster cluster = Cluster.builder() .addContactPoint(contactPoint) .withPort(8636) .withQueryOptions(new QueryOptions().setFetchSize(20)) .build();
After the setting is successful, for all sessions spawned with this configuration, the configured number of rows is fetched from the server at a time. When the cache (20 rows) is exhausted, the system triggers a request for fetching another 20 rows from the server and there can be a waiting period.
Obtaining the Next Page in Advance
If you need to manually fetch more rows in advance to avoid waiting and save them to the current result set, refer to the following code. When the result set has 10 rows left, submit a parallel request for fetching more rows from the server.
ResultSet rs = session.execute("select * from space3.table3;"); for (Row row : rs) { if (rs.getAvailableWithoutFetching() == 10 && !rs.isFullyFetched()){ System.out.println("pre-fetch more rows. "); rs.fetchMoreResults(); } System.out.println(row); }
Saving and Reusing the Paging State
- Save the current paging state.
PagingState pagingState = resultSet.getExecutionInfo().getPagingState(); String string = pagingState.toString(); byte[] bytes = pagingState.toBytes();
- Load and reuse the current paging state.
PagingState pagingState = PagingState.fromString(string); Statement st = new SimpleStatement("your query"); st.setPagingState(pagingState); ResultSet rs = session.execute(st);
Note: The paging state can only be collected, stored, and reused. They cannot be modified or applied to other query statements.
GeminiDB Cassandra API does not support offset queries, which means that you cannot skip any part of the result set and cannot fetch results within the specified index range. If you want to use offset queries, you can emulate them on the client side. You will get all results in order, but you can delete results that you do not need. For more advanced usage and introduction, see DataStax Java Driver 3.11.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot