问题描述
我正在使用自动增量会话变量临时列,以获取特定排序顺序的某种序列。查询看起来像这样:
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.ID
在field("ID")
中作为ctx.select()
传递时。
是不是JOOQ
不支持使用TableRecord
和field("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());