【问题标题】:Slick optional query parameters光滑的可选查询参数
【发布时间】: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?只要您有一个选项,您就可以插入该选项,而不是将其作为特殊情况处理。
  • 嗨反应堆。那部分是我的问题。由于我的笨拙,我不确定所需的语法! :)
  • 然后提供更多代码。

标签: scala slick


【解决方案1】:

我最终使用了一个自定义的“MaybeFilter”解决方案,该解决方案发布在各个地方,包括...

见https://gist.github.com/studiodev/5c6471cb1d823914ee28

【讨论】:

  • 那个链接是404
猜你喜欢
  • 1970-01-01
  • 2020-09-08
  • 2020-12-22
  • 1970-01-01
  • 2021-02-02
  • 1970-01-01
  • 2019-02-01
  • 2015-09-14
  • 1970-01-01
相关资源
最近更新 更多