Можно ли реализовать фильтры с несколькими предикатами? - PullRequest
0 голосов
/ 05 июля 2019

Мне трудно понять, как работать с несколькими предикатами в slick.

В качестве простого примера представьте фильтр SQL в стиле И, в котором пользователь соответствует указанному имени и фамилии:

def getByName(first: String, last: String) = {
  users // TableQuery[Users]
    .filter(_.userFirstName === first)
    .filter(_.userLastName === last)
    .result
}

Есть ли в slick более идиоматическая (и более производительная) реализация сложных фильтров с несколькими предикатами или я выбрал неправильный подход?

1 Ответ

3 голосов
/ 05 июля 2019

Попробуйте

def getByName(first: String, last: String) = {
  users
    .filter(user => user.userFirstName === first && user.userLastName === last)
    .result
}
...