【发布时间】:2016-03-16 16:01:49
【问题描述】:
我正在使用 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
如何在查询中包含可选参数?
谢谢
【问题讨论】:
-
为什么是
if?只要您有一个选项,您就可以插入该选项,而不是将其作为特殊情况处理。 -
嗨反应堆。那部分是我的问题。由于我的笨拙,我不确定所需的语法! :)
-
然后提供更多代码。