我最近開始使用couchbase。我正在使用Spring-Data couchbase在Couchbase中插入Java POJO。由於Spring Data Couchbase項目不支持分頁和排序,因此我嘗試使用couchbase java客戶端2.2.0-dp2。Couchbase N1QL Java SDK分頁和排序問題
我已插入其中的ID取值範圍爲1到8
我已經寫了下面的代碼來應用分頁和排序8級的用戶。
public void test() {
int offset = 5 * (1 - 1);
Statement statement = select("*").from("test").where(x("_class").eq(s("com.test.rest.entity.User"))).orderBy(Sort.asc("id")).limit(5).offset(offset);
log.info(statement.toString());
Iterator<QueryRow> result = bucket.query(Query.simple(statement)).rows();
while(result.hasNext()) {
QueryRow doc = result.next();
log.info("Document:: " + doc.value());
}
}
但是,我看到了如下結果。雖然用戶是隨機選擇的,但應該是test1來測試5。有人可以幫助我嗎?
Document:: {「test":{"createdAt":1.443420400374E12,"firstname":"test5","_class":"com.test.rest.entity.User","type":"User","lastname":"test5"}}
Document:: {「test":{"createdAt":1.443420708495E12,"firstname":"test8","_class":"com.test.rest.entity.User","type":"User","lastname":"test8"}}
Document:: {「test:{"createdAt":1.443420386638E12,"firstname":"test2","_class":"com.test.rest.entity.User","type":"User","lastname":"test2"}}
Document:: {「test":{"createdAt":1.443420704104E12,"firstname":"test7","_class":"com.test.rest.entity.User","type":"User","lastname":"test7"}}
Document:: {「test":{"createdAt":1.443420379712E12,"firstname":"test1","_class":"com.test.rest.entity.User","type":"User","lastname":"test1"}}
沒有。事實並非如此。在創建記錄的同時,我依次設置ID,並且ID很長。 「測試」後我附加了相同的ID。我們也可以通過排序,但記錄仍然是隨機的。 –
瞭解。爲什麼然後在你的查詢輸出中不存在id屬性?也許這就是問題所在? – user1697575
好點。 QueryRow類具有返回JsonObject的value()方法,但不包含id字段。此外,我嘗試對createdAt進行排序,並按預期進行分頁工作。但是,我仍然想知道爲什麼id不會作爲json的一部分返回。我想這會幫助我獲得解決方案。感謝幫助的人。真的很感激它。 –