簡體   English   中英

在浮油中使用本機查詢進行分頁

[英]Pagination with native query in slick

我在我們的應用程序中使用Slick連接到Postgres數據庫。 我有一個通用的過濾邏輯,其中一個Filter對象將從UI傳遞,它應該返回帶有分頁的結果。 Filter對象應該是通用的,以便可以重復使用。 過濾器對象的偽代碼如下:

Filter = {
type: table
prop: List_of_conditions
page : 1
size : 10
}

目前,我正在從Filter對象構建本機SQL並執行它。 但是,在查詢實際執行之前,我無法使用takedrop 它目前獲得所有結果,然后刪除不必要的記錄。 我知道如何使用光滑的查詢,但不知道如何使用本機查詢分頁?

val res = StaticQuery.queryNA[Entity](queryStr).list.drop((filter.pageNo- 1) * filter.pageSize).take(filter.pageSize)

我正在使用Slick 2.1

使用普通sql時,不能使用集合運算符來構建查詢。 你必須在SQL中完成所有操作:

val limit = filter.pageSize
val offset = (filter.pageNo- 1) * filter.pageSize
val res = StaticQuery.queryNA[Entity](queryStr ++ s" LIMIT $limit OFFSET $offset").list

我沒有測試過,但我建議你嘗試將.list調用移到最后

val res = StaticQuery.queryNA[Entity](queryStr).drop((filter.pageNo- 1) * filter.pageSize).take(filter.pageSize).list

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM