2014-09-28 71 views
0

我正在學習與斯利克玩Scala並遇到問題。由Slick生成的查詢在使用drop和take時會引發錯誤(工作正常,但不需要下載,但我需要分頁)。油滑下降,並拋出錯誤

val categories = TableQuery[Categories] 

def list(page: Int = 0, pageSize: Int = 10, orderBy: Int = 1)(implicit s: Session): Page[Category] = { 

    val offset = pageSize * page 
    val totalRows = count 
    /* Error here */ 
    val result = categories.drop(offset).take(pageSize).list 
    /* This works fine */ 
    /* val result = categories.list */ 

    Page(result, page, offset, totalRows) 
    } 

生成的查詢和錯誤堆棧跟蹤:

[JdbcSQLException: Syntax error in SQL statement "SELECT X2.""id"", X2.""name"", X2.""description"" FROM (SELECT X3.""id"" AS ""id"", X3.""name"" AS ""name"", X3.""description"" AS ""description"" FROM ""core_category"" X3 FETCH[*] NEXT 10 ROW ONLY) X2 "; expected "RIGHT, LEFT, FULL, INNER, JOIN, CROSS, NATURAL, ,, WHERE, GROUP, HAVING, UNION, MINUS, EXCEPT, INTERSECT, ORDER, LIMIT, FOR,)"; SQL statement: 
select x2."id", x2."name", x2."description" from (select x3."id" as "id", x3."name" as "name", x3."description" as "description" from "core_category" x3 fetch next 10 row only) x2 [42001-175]] 

任何想法我怎麼能實現分頁沒有得到這個錯誤?

+0

這似乎是一個在Slick中的錯誤。您可能想在此處將其報告給Slick項目:https://github.com/slick/slick/issues – tuxdna 2014-09-28 14:24:46

回答

0

我正在導入JdbcDriver而不是個性化驅動程序(在我的情況下是H2Driver)以獲取正確的方言。