Использование Jooq с jsonb_agg на postgreSQL без генератора кода?

Я хотел бы использовать Jooq с jsonb_agg для создания объектов jsonb, которые я могу читать как поток. Есть ли способ сделать это, не заставляя Jooq просматривать базу данных?

Я знаю, что могу заставить Jooq просмотреть базу данных и решить, какие агрегаты он находит, но есть ли способ использовать это без прохождения этого процесса самоанализа? Я просмотрел документы 4 раза и не вижу ответа.


person Chris Travers    schedule 08.11.2017    source источник


Ответы (1)


Так что ответ по поводу определения полей скрыт в документации по DSL.

Во всех приведенных ранее примерах используется некоторый вариант:

create.select(field("example1"), field("example2")).from(table(a)...

Однако вы можете определить свои собственные поля или даже встроенные определения функций.

Определение поля может быть примерно таким:

Field<Object> example1 = field("example1");

Или, если вы хотите определить тип:

Field<String> example2 = field("example2", String.class);

Это становится важным, когда вы хотите определить более сложные поля, такие как:

Field<String> jsonAry = function("jsonb_agg", String.class, example2);

Jooq действительно сияет, позволяя создавать такие вещи. Затем вы можете:

Fiend<String> fullJson = function("jsonb_build_object", String.class, example1, example2);

Затем, если вы groupBy(example1), вы получите хороший объект jsonb_agg.

person Chris Travers    schedule 09.11.2017
comment
Спасибо, что задокументировали это. Для будущих посетителей это называется обычный SQL. и простой шаблон SQL в jOOQ - person Lukas Eder; 10.11.2017