2016-03-16 1 views
1

Я использую Slick для запроса базы данных. Я прохожу класс Case моего метод запроса, который выглядит как похоже на ...Сгладить необязательные параметры запроса

case class queryParams(id:Int, age:Option[Int] = None, 
    categoryId:Option[Int] = None) 

У меня есть Slick запрос, который похож на ...

val query = this.filter(row => 
    (row.id == queryParams.id)) 
query.list 

И это работает отлично. Но теперь я хочу расширить запрос, чтобы включить другие члены queryParams, если они определены, но я не уверен, как я должен это структурировать.

То, что я хочу что-то вроде этого ...

for { row <- this.list 
    if(row.id == queryParams.id) 
    // include 
    if(queryParams.age.isDefined) row.age == queryParams.age.get 
    } yield row 

Как я могу включать в себя дополнительные Params в запросе?

Благодаря

+0

Почему 'if'? Как только у вас есть опция, вы можете просто подключить опцию вместо того, чтобы обрабатывать ее как особый случай. – Reactormonk

+0

Hi Reactor. Это отчасти моя проблема. Я не уверен в синтаксисе, требуемом из-за моей нообильности! :) – fatlog

+0

Затем введите еще один код. – Reactormonk

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^