2012-09-08 50 views
1

我們如何使用Astyanax檢索Cassandra中的一行?Astyanax通過UUID檢索

我有需要分頁要在服務器端做一個Web應用程序,數據庫是卡桑德拉。行鍵是一個UUID,我在一行中有幾列,所以我試圖對行鍵進行分頁。

我已經把與我不完全滿意的解決方案。問題是,當我根據我從UI獲得的搜索過濾器進行第一次搜索時,我不知道第一行的UUID,所以我準備了一個Query,它給了我前6條記錄,我存儲了第6條記錄放在一個會話中,所以當用戶從UI請求第二個頁面時,我檢索這個鍵(UUID)並將其作爲下一組要檢索的記錄的開始。我試圖找到一個更清潔的方法。

回答

3

編輯迴應質疑的變化......

在這種情況下,聽起來像你這樣做就好了。也聽起來像你正在使用OOP,否則行不按順序。雖然playOrm的解決方案更加優雅,可以將您存儲在會話中的遊標返回給您,但我認爲您擁有的遊戲很好。

因爲我們的代碼改變了編輯 在這個鏈接中的第74行是我們如何做的(你可以深入到那個遊標類基本上看看我們做什麼)。

https://github.com/deanhiller/playorm/blob/master/src/main/java/com/alvazan/orm/layer9z/spi/db/cassandra/CassandraSession.java

它,如果你有10個鍵你只是傳遞鍵列表。

我不知道你所說的分頁意思????你是說你有一個from和row鍵,想要它們之間的行嗎?您是否正在按排序鍵對集羣進行排序?

另一個完全不同的方向去訂購是playOrm,雖然它可以做S-SQL,如果事情分區,你可以做連接等(上面的鏈接實際上是playOrm中的一個文件)。

我真的不知道你是什麼意思「你不用跟你行鍵」

後, 院長

+0

感謝您的答覆。讓我把它放在更好的方式。它是一個具有搜索頁面的Web應用程序,用戶輸入一個值可以表示一個帶有名稱值的字段,例如name =「xyz」,現在我只想獲得與條件匹配的前5條記錄,並且當用戶轉到第2頁時用戶界面,我會得到下面的5條記錄。基本分頁..... – Guest