2016-03-16 36 views
1

我正在使用Slick查询数据库。我通过一个案例类,它看起来像类似于我的查询方法...浮动可选查询参数

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

我有一个漂亮的查询类似于...

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

嗨反应堆。这部分是我的问题。由于我的不好意思,我不确定所需的语法! :) – fatlog

+0

然后再提供一些代码。 – Reactormonk

回答