(m.state === state1 && m.status === status1) || (m.state === state-6ren">
gpt4 book ai didi

scala - 如何在 slick 中做 "OR"过滤器

转载 作者:行者123 更新时间:2023-12-04 01:56:36 25 4
gpt4 key购买 nike

在 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) 

这实际上会在查询对象上执行条件 1 或条件 2。
现在可以使用 Slick 或 for comprehensions 吗?

最佳答案

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

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

哪里 conditions形式为 List[(String,String)] , m._13映射到状态和 m._14映射到状态。

希望这会帮助有人尝试同样的事情。

关于scala - 如何在 slick 中做 "OR"过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26815913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com