(Я полный новичок в Scala и Slick, поэтому любой обзор кода приветствуется)
У меня определены следующие class
и Slick Table
:
case class Foo(title: String, description: String, id: Int = 0)
class FooTable(tag: Tag) extends Table[Foo](tag, "FOO") {
def id = column[Int]("ID", O.PrimaryKey, O.AutoInc)
def title = column[String]("TITLE", O.NotNull)
def description = column[String]("DESCRIPTION")
def * = (title, description, id) <> (Foo.tupled, Foo.unapply)
}
Я хочу добавить метод, который будет возвращать List
из Foo
, соответствующих указанному title
. Что-то вроде этого:
def findByTitle(title: String) = DB.withSession { implicit s: Session =>
<FooTable TableQuery>.filter(_.title === title)
}
Тогда я смогу использовать такой метод:
val foos = TableQuery[FooTable]
DB.withSession { implicit s: Session =>
val anId = foos.findByTitle("bar")
}
Как / где я могу добавить метод, который может воздействовать на TableQuery
для определенного Table
? Это вообще правильный способ оформления моего заявления?