Как сделать "или" фильтр в slick

в slick мы можем использовать

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

для условия " или " в предложении where. Однако мое требование - у меня есть" или " условия в списке (переданном пользователем как часть URL). Список условий включает кортежи состояния и статуса, такие как

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

Итак, я хотел либо иметь возможность построить оператор || внутри фильтра, чтобы я мог использовать каждое из условий из списка для создания запроса, но я не уверен, как этого достичь. Или если есть что-то как

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

который фактически будет выполнять condition1 или condition2 для объекта запроса. Возможно ли это с помощью Slick или С для понимания на данный момент ?

1 ответов


играя с ним, я, наконец, нашел способ сделать это: -

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

здесь conditions имеет форму List[(String,String)], m._13 карты в состояние и m._14 карты для статуса.

надеюсь, это поможет кому-то попробовать то же самое.