我有一个案例类员工
case class Employee(id: Int,
name: String,
age: Int, is_permanent: Boolean,
company_name: String)
我正在使用 Quill SQL 过滤这个 Employee 案例类,如下所示:
quote {
query[Employee]
.filter(e => e.age > 100)
.filter(e => liftQuery(List("Robin, Peter")).contains(e.name))
}
它编译得很好。
现在我想把第二个filter
放到一个函数中并重用它。喜欢
val employeeQueryFunc: (Employee => Boolean) = e => {
liftQuery(List("Robin, Peter")).contains(e.name)
}
然后在我需要的多个位置应用此功能。如果我像这样把它放到员工查询中
quote {
query[Employee]
.filter(e => e.age > 100)
.filter(employeeQueryFunc)
}
它不编译。我得到错误
this.Employee]).filter(((e: FindAllIssuesRepoQuery.this.Employee) => e.age.> .
(100))).filter(employeeQueryFunc)' can't be parsed to 'Ast'
理想情况下,它应该编译为过滤器块还包含一个返回布尔值并employeeQueryFunc
返回布尔值的函数。有谁知道它可以作为一个函数重用吗?