是否可以使用多个谓词实现过滤器?

时间:2019-07-05 20:25:24

标签: scala slick

我在弄清楚如何使用slick中的多个谓词时遇到麻烦。

举一个简单的例子,想象一个SQL风格的AND过滤器,其中用户匹配指定的名字和姓氏:

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

slick中,是否存在更复杂的,具有多个谓词的过滤器的习惯用法(更高效的实现)?还是我采用了错误的方法?

1 个答案:

答案 0 :(得分:3)

尝试

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