选项 1(使用星号):
(*
星号,星号)运算符已通过DSL.asterisk()
(不合格星号)或通过Table.asterisk()
(合格星号)添加到 jOOQ 3.11。它可以像投影的任何其他列一样使用。
在 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()
方法,该方法当然依赖于运行时存在的此类元信息,例如通过使用代码生成器。