如何在JOOQ中写谓词中的多字段`?

时间:2018-06-28 05:21:20

标签: java sql jooq

在JOOQ中,我可以像下面的SQL一样编写代码吗?

我不知道写具有多个字段的in谓词的方法。

select some_value
  from t1
  where (t1.id1, t1.id2) in ((1, 2), (1, 3), (2, 1))

1 个答案:

答案 0 :(得分:2)

您正在寻找DSL.row()构造函数。也可以看看: https://www.jooq.org/doc/latest/manual/sql-building/conditional-expressions/in-predicate-degree-n

您的情况如下:

DSL.using(configuration)
   .select(T1.SOME_VALUE)
   .from(T1)
   .where(row(T1.ID1, T1.ID2).in(row(1, 2), row(1, 3), row(2, 1)))
   .fetch();

一如既往:

// This static import is implied
import static org.jooq.impl.DSL.*;