我正在使用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成员“if”它们被定义但我不确定我应该如何构造它 .
我想要的是这样的......
for { row <- this.list
if(row.id == queryParams.id)
// include
if(queryParams.age.isDefined) row.age == queryParams.age.get
} yield row
如何在查询中包含可选参数?
谢谢
1 回答
我最终使用了一个自定义的“MaybeFilter”解决方案,该解决方案发布在各个地方,包括......
见https://gist.github.com/studiodev/5c6471cb1d823914ee28