我是Slick 3的新手。我想使用Slick按照以下查询过滤复合主键。
SELECT * FROM test_table WHERE (pk1, pk2) IN (("a1", "a2"), ("b1", "b2"));
我知道Slick可以过滤多个条件,例如
TestTableQuery.filter(t => t.pk1 === "a1" && t.pk2 === "a2")
此外,我知道Slick可以像
一样过滤多个值(这意味着IN刻度)。val pkSeq = Seq("a1", "b1")
TestTableQuery.filter(t => t.pk1.inSet(pkSeq))
所以,如果可能的话,我想写如下。
val pk1AndPk2Seq = Seq(("a1", "a2"), ("b1", "b2"))
TestTableQuery.filter(t => (t.pk1, t.pk2).inSet(pk1AndPk2Seq))
有什么办法吗?谢谢。