Вариант 1 (с использованием звездочки):
Оператор *
(звездочка, звезда) был добавлен в jOOQ 3.11 - DSL.asterisk()
(неквалифицированная звездочка) или через Table.asterisk()
(квалифицированная звездочка). Его можно использовать как любой другой проецируемый столбец.
До jOOQ 3.11 были также следующие другие опции:
Опция 2 (с синтаксисом DSL):
List<Field<?>> fields = new ArrayList<Field<?>>();
fields.addAll(Arrays.asList(Table1.TABLE1.fields()));
fields.add(Table1.ID.count().as("IdCount"));
Select<?> select = ctx.select(fields).from(Table1.TABLE1);
Опция 3 (с использованным вами "обычным" синтаксисом):
SelectQuery q = factory.selectQuery();
q.addSelect(Table1.TABLE1.fields());
q.addSelect(Table1.ID.count().as("IdCount"));
q.addFrom(Table1.TABLE1);
Опция 4 (добавлено в более позднюю версию jOOQ):
// For convenience, you can now specify several "SELECT" clauses
ctx.select(Table1.TABLE1.fields())
.select(Table1.ID.count().as("IdCount")
.from(Table1.TABLE1);
Все вышеперечисленные опции используют метод Table.fields()
, который, конечно, основан на такой мета-информации, присутствующей во время выполнения, например, с помощью генератора кода.