Слик неявного параметра 'таблицы' с созданными таблицами
Простая версия
Какой предпочтительный способ импорта и использования сгенерированных таблиц 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("")
}