Карринг в Slick и Scala для функции фильтра с параметрами? - PullRequest
0 голосов
/ 05 июля 2018

Как определить параметр карри (???), можно изменить фильтр в функции ниже:

def readManRleIspBy(value:String)(???) = {
  val query= tblManRleIsp.filter(??? === value)
  db.run(query.result)
}

Мне нужно определить (???) на другой стороне. Например readManRleIspBy("test")(f=>f.rlePattern) или же readManRleIspBy("test")(f=>f.rleName)

1 Ответ

0 голосов
/ 05 июля 2018

Для этой цели вы должны использовать слик Rep. Здесь, в приведенном ниже коде TableRow - это имя класса, который вы сохраняете в базе данных, используя slick.

Например, если я постоянный сотрудник, я пишу таблицу сотрудников, и мой TableRow становится Employee

def readManRleIspBy[A](value: A)(f: Rep[TableRow] => Rep[A]) = {
  val query= tblManRleIsp.filter(row => f(row) === value)
  db.run(query.result)
}

Теперь вы можете написать

readManRleIspBy("test")(f => f.rlePattern)

, а также

readManRleIspBy("test")(f => f.rleName)

Бесплатный совет: пожалуйста, попробуйте использовать лучшие имена

...