2014-09-28 70 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)以获取正确的方言。