我正在手动使用以下方法为JOOQ中的简单(但类型安全)查询声明表和字段:

Table<Record> myTable = DSL.table(DSL.name("my_table"));
Field<String> myField = DSL.field(DSL.name("my_table", "my_field"), String.class);

myTable创建别名很容易:
Table<Record> myAlias = myTable.as("a");

但是,如何在myField中访问myAlias的值?

注意myAlias.field(myField)将产生null,因为该字段不是此表定义的一部分。

最佳答案

您无法访问普通SQL表中的字段,因为jOOQ对其一无所知。您必须为每个别名构造单独的字段引用,例如

Field<?> myAliasedField = field(name("a", "my_field"), String.class);

09-26 03:58