Как написать предикат мультиполя `in` в JOOQ? - PullRequest
0 голосов
/ 28 июня 2018

Могу ли я написать код в JOOQ, как показано ниже SQL?

Я не знаю, как написать предикат in с несколькими полями.

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

1 Ответ

0 голосов
/ 28 июня 2018

Вы ищете конструктор 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.*;
...