是否可以在 JOOQ 的 'select' 中合并 'field' 和 table 记录?

Is it possible to combine 'field' and table record inside 'select' in JOOQ?

我正在使用自动增量会话变量临时列,以获取特定排序顺序的某种序列。查询看起来像这样:

return ctx.select(
            field("rowNumber"),
            TABLE.ID                
    ).from(/* Get an inner query here */)
            .where(TABLE.ID.eq(someValue))
            .orderBy(field("rowNumber").asc());

但是,当我尝试执行上述查询时,returns 出现以下错误:

Unknown column 'TABLE.ID' in 'field list'

我让它工作的唯一方法是当 TABLE.IDctx.select() 中作为 field("ID") 传递时。

是否 JOOQ 不支持使用 TableRecordfield("column") 的组合指定列?

事实证明,这是可能的。显然,不正确的别名可能与此问题有关。是这样解决的:

TABLE t = TABLE.as("t");
return ctx.select(
            field("rowNumber"),
            t.ID                
    ).from(getInnerQuery().asTable("t"))
            .where(t.ID.eq(someValue))
            .orderBy(field("rowNumber").asc());