Функции высшего порядка с 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