Так что ответ по поводу определения полей скрыт в документации по 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