Я пытаюсь обобщить функцию для фильтрации некоторых TableQuery
в пятно, используя filter
, поэтому я создал следующий метод:
def fetchCoffee(coffe: String)(p: MyTable => Boolean) =
// ...
myTableQuery.filter(p)
// ...
, и я назвал его так:
fetchCoffee("micoffee")(_.coffeeId == id)
Но с этой ошибкой происходит сбой:
Error:(43, 29) inferred type arguments [Boolean] do not conform to method filter's type parameter bounds [T <: slick.lifted.Rep[_]]
val query = MyTable.filter(p)
Error:(43, 36) type mismatch;
found : MyTable => Boolean
required: MyTable => T
val query = myTableQuery.filter(p)
Error:(43, 35) Type T cannot be a query condition (only Boolean, Rep[Boolean] and Rep[Option[Boolean]] are allowed
val query = myTableQuery.filter(p)
Я пытался изменить тип p
на p: MyTable => Rep[Boolean]
и Rep[MyTable => Boolean]
, но все еще не работает. Я также безуспешно пытался передать ExecutionContext
как неявное fetchCoffee
.
Как мне написать тип предиката для соответствия ограниченному типу T
?