Ловкое падение и ошибка при броске

Я изучаю Play Scala со Slick и сталкиваюсь с проблемой. Запрос, сгенерированный Slick, выдает ошибку при использовании drop and take (отлично работает без drop and 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]]

Любые идеи, как я могу реализовать разбиение на страницы, не получая этой ошибки?


person Mihail Burduja    schedule 28.09.2014    source источник
comment
Похоже, это ошибка в Slick. Вы можете сообщить об этом в проект Slick здесь: github.com/slick/slick/issues   -  person tuxdna    schedule 28.09.2014


Ответы (1)


Я импортировал JdbcDriver вместо персонализированных драйверов (в моем случае H2Driver), чтобы получить правильный диалект.

person Mihail Burduja    schedule 28.09.2014