Я пытаюсь реализовать простой запрос БД с необязательной нумерацией страниц. Моя попытка:
def getEntities(limit: Option[Int], offset: Option[Int]) = {
// MyTable is a slick definition of the db table
val withLimit = limit.fold(MyTable)(l => MyTable.take(l)) // Error here.
// Mytable and MyTable.take(l)
// has various types
val withOffset = offset.fold(withLimit)(o => withLimit.drop(o))
val query = withOffset.result
db.run(query)
}
Проблема заключается в ошибке:
несоответствие типов:
найдено: slick.lifted.Query
обязательно: slick.lifted.TableQuery
Как сделать этот код работоспособным? А может быть, немного красивее?
Мое текущее исправление для получения Query
из TableQuery
- добавить .filter(_ => true)
, но ИМХО это нехорошо:
val withLimit = limit.fold(MyTable.filter(_ => true))(l => MyTable.take(l))