Как выбрать несколько строк по их составным первичным ключам в JOOQ? - PullRequest
1 голос
/ 18 марта 2020

У меня есть таблица с составным первичным ключом. Я хочу найти строки с некоторым набором первичных ключей.

Моя таблица:

create table test_tbl
(
    id_part_1 varchar(36) not null,
    id_part_2 varchar(36) not null,
    some_data text not null,
    constraint test_tbl_pkey
        primary key (id_part_1, id_part_2)
);

Мой SQL запрос:

SELECT * FROM test_tbl
    WHERE (id_part_1, id_part_2) IN (('id_part_1_1', 'id_part_2_1'), ('id_part_1_2', 'id_part_2_2'));

Итак, как реализовать этот запрос с помощью JOOQ? Я не генерирую JOOQ Dao, у меня просто есть таблицы JOOQ.

1 Ответ

1 голос
/ 18 марта 2020

Используйте DSL.row() для построения выражения значения строки, а затем:

row(TEST_TBL.ID_PART_1, TEST_TBL.ID_PART_2).in(
  row("id_part_1_1", "id_part_2_1"),
  row("id_part_1_2", "id_part_2_2")
);

См. Также раздел руководства jOOQ о предикате IN, степень> 1

...