Функции высшего порядка с Scala Slick для СУХОГО совершенства

У меня есть идея, как должен выглядеть слой доступа к данным со Scala Slick, но яя не уверен, если этодействительно возможно.

Позволять'Предположим, у меня есть таблица User, в которой есть обычные поля, такие как id, email, пароль и т. д.

  object Users extends Table[(String, String, Option[String], Boolean)]("User") {
    def id = column[String]("id", O.PrimaryKey)
    def email = column[String]("email")
    def password = column[String]("password")
    def active = column[Boolean]("active")
    def * = id ~ email ~ password.? ~ active
  }

И я хочу запросить их по-разному, в настоящее время уродливый способ - это начать новую сессию базы данных, выполнить для понимания, а затем сделать разные операторы if для достижения того, чего я хочу.

например

  def getUser(email: String, password: String): Option[User] = {
    database withSession { implicit session: Session =>
      val queryUser = (for {
        user 
      val queryUser = (for {
        user  Boolean

private def getUserByQuery(whereQuery: UserQuery): Option[User] = {
  database withSession { implicit session: Session =>
      val queryUser = (for {
        user 

Ответы на вопрос(2)

Ваш ответ на вопрос