光滑的可选查询参数

时间:2016-03-16 16:01:50

标签: scala slick

我使用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

如何在查询中包含可选参数?

由于

1 个答案:

答案 0 :(得分:0)

我最终使用了自定义&#34; MaybeFilter&#34;在各个地方发布的解决方案,包括......

请参阅https://gist.github.com/studiodev/5c6471cb1d823914ee28