如何在光滑中"OR"过滤器



在slick中,我们可以使用

query.filter( m => (m.state === state1 && m.status === status1) || (m.state === state2 && m.status == status2)) 

用于where子句中的"OR"条件。然而,我的要求是在列表中有"OR"条件(由用户作为URL的一部分传递)。条件列表包括状态和状态的元组,如

List[(state1, status1),(state2, status2),(state3, status3)]

因此,我想要的是能够在filter中构建||语句,这样我就可以使用列表中的每个条件来生成查询,但我不确定如何实现这一点。或者如果有类似的东西

query.applyOrFilters.orFilter(condition1).orFilter(condition2) 

它实际上会对查询对象执行condition1或condition2。到目前为止,是否可以使用Slick或进行综合?

在玩它的时候,我终于找到了一种方法:-

query.filter {
  m => conditions.map(n => m._13 === n._1 && m._14 === n._2).reduceLeft(_ || _)
}

其中conditions的形式为List[(String,String)]m._13映射到状态,m._14映射到状态。

希望这能帮助人们尝试同样的东西。

最新更新