I have a slick table "UserSchema" as follows:
class UserSchema(tag: Tag) extends Table[User](tag, "users") {
def name = column[String]("name", O.NotNull)
def password = column[String]("password", O.NotNull)
def graduatingYear = column[Int]("graduating_year", O.NotNull)
def id = column[Int]("id", O.NotNull, O.PrimaryKey, O.AutoInc)
def * = (name, password, graduatingYear, id.?) <> (User.tupled, User.unapply)
}
My "User" case class is as follows:
case class User(name: String, password: String, graduatingYear: Int, id: Option[Int] = None)
I have a TableQuery[UserSchema]
in a users
object, and a database in a db
object.
How can I convert the following into a User object?
db withSession { implicit session =>
users.filter(_.id === 1)
}
At the moment, I have
db withSession { implicit session =>
val list = users.filter(_.id === id).list
list(0)
}
which works, but seems ugly to me. Is there a better way to do this?
Thanks for the help.