是否可以在JOOQ的“选择”中合并“字段”和表记录?

问题描述

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

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

但是,当我尝试执行上述查询时,它返回以下错误

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

使它起作用的唯一方法是,当TABLE.IDfield("ID")中作为ctx.select()传递时。

是不是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());