2016-11-03 77 views
2

Datastax的cassandra的java驅動提供了Accessor。請參考heredatastax cassandra java驅動程序的Accessor使用分頁嗎?

參考他們的例子,他們是否分批進行分頁和抓取記錄,或者是否存在查詢超時的風險?

@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); 

回答

5

是有幕後使用的提取大小的東西。驅動程序將根據需要爲您自動尋找頁面。

您可能需要通過@QueryParameters設置獲取大小。此時的默認值爲5k,請參見DEFAULT_FETCH_SIZE

+0

感謝傑夫。任何想法如果不通過@QueryParameters配置任何東西,幕後默認的獲取大小是多少? –

+1

用當前的默認值和指向代碼的鏈接更新了答案。 –

+0

@VinodJayachandran在接受之前還有什麼需要從答案中得到的嗎? –

1

下面是我如何使用FETCHSIZE在@QueryParameters註釋一個訪問中的例子:

@Accessor 
public interface UserAccessor {  

    @Query("SELECT * FROM users") 
    @QueryParameters(fetchSize = 1000) 
    Result<User> getAllUsers(); 
} 
相關問題