Слик неявного параметра 'таблицы' с созданными таблицами

Простая версия

Какой предпочтительный способ импорта и использования сгенерированных таблиц Slick?

Подробная версия и что я пробовал

Я использовал кодек Slick 3.1.1 для генерации Tables.scala из схемы MySQL (MariaDB).

Tables.scala начинается с этого:

// AUTO-GENERATED Slick data model
/** Stand-alone Slick data model for immediate use */
object Tables extends {
    val profile = slick.driver.MySQLDriver
} with Tables

Какой лучший способ использовать эти классы? Согласно документации Slick:

Файл содержит объект Tables, из которого код может быть импортирован для использования сразу.... Файл также содержит таблицы свойств, которые можно использовать в шаблоне тортов.

... я пробовал варианты на этом примере

import Tables._
import Tables.profile.api._
import slick.jdbc.JdbcBackend

class Test(s: String)(implicit db: Database) {
    def exec[T](action: DBIO[T])(implicit db: Database): T =
            Await.result(db run action)
    def run: Unit = exec(((ATable filter (_.id)).result)
}
object Test {
    implicit val db = Database.forURL(url, user, password)
    new Test("")
}

Я получаю ошибку компиляции везде, где я ссылаюсь на класс ATable:

не удалось найти неявное значение для таблиц параметров: Таблицы

Я даже не вижу tables в Tables.scala, Как получить все необходимое для использования сгенерированных классов Slick?

1 ответ

Решение

Я получил пример для работы: Tables._ а также Tables.profile.api._ просто нужно импортировать внутри класса с неявным Database имеется в наличии.

import slick.jdbc.JdbcBackend

class Test(s: String)(implicit db: Database) {
    import Tables._
    import Tables.profile.api._

    def exec[T](action: DBIO[T])(implicit db: Database): T =
            Await.result(db run action)
    def run: Unit = exec(((ATable filter (_.id)).result)
}
object Test {
    implicit val db = Database.forURL(url, user, password)
    new Test("")
}
Другие вопросы по тегам