У меня есть класс дел Employee
case class Employee(id: Int,
name: String,
age: Int, is_permanent: Boolean,
company_name: String)
Я выполняю фильтрацию по этому классу дел Employee с использованием Quill SQL, например:
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
также возвращает логическое значение. Кто-нибудь знает, как его можно использовать как функцию ??