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

Is it possible to implement filters with multiple predicates?

我无法弄清楚如何在 slick 中使用多个谓词。

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

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

slick 中是否有更惯用(且性能更高)的复杂过滤器实现,或者我采用了错误的方法?

尝试

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