12

滑らかに使用できます

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

だから私が望んでいたのは、 || を構築できるようにすることでした。リストの各条件を使用してクエリを生成できるように、フィルター内のステートメントを使用しますが、それを実現する方法がわかりません。または、次のようなものがある場合

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

実際には、クエリ オブジェクトに対して condition1 OR condition2 が実行されます。今のところ、Slickまたはfor comprehensionsで可能ですか?

4

1 に答える 1

18

それをいじりながら、私は最終的にそれを行う方法を見つけました:-

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

whereconditionsは の形式List[(String,String)]であり、 m._13state にm._14マップし、status にマップします。

うまくいけば、これは誰かが同じことを試すのに役立ちます。

于 2014-11-08T11:35:07.567 に答える