Java 如何从未生成的别名表中获取字段?

Java 如何从未生成的别名表中获取字段?,java,sql,jooq,Java,Sql,Jooq,我想在比较中使用一个表表达式,类似于。我使用jOOQ只是为了生成SQL字符串;我没有将其代码生成用于我的表类型。我刚才在文档中看到: 更好的解决方案是以下任何一种: Table<Record> myTable = DSL.table("myTable"); Table<Record> a = myTable.as("a"); Field<Integer> myField = DSL.field("myField", SQLDataType.INTEGER);

我想在比较中使用一个表表达式,类似于。我使用jOOQ只是为了生成SQL字符串;我没有将其代码生成用于我的表类型。

我刚才在文档中看到:

更好的解决方案是以下任何一种:

Table<Record> myTable = DSL.table("myTable");
Table<Record> a = myTable.as("a");
Field<Integer> myField = DSL.field("myField", SQLDataType.INTEGER);

a.field("myField"); // == null
a.field("myField", SQLDataType.INTEGER); // == null
a.field(myField); // == null
我认为手册的这一部分可能对您非常有帮助:

这对我来说很有效,但我需要做一些更改,因为我使用的是类型安全字段。我写了这个助手:

Field MY_FIELD1 = field(MY_TABLE.getName() + ".MY_FIELD");
Field MY_FIELD2 = field(name(MY_TABLE.getName(), "MY_FIELD"));
private <T> Field<T> field(final Table<Record> table, final Field<T> field) {
    return DSL.field(DSL.name(table.getName(), field.getName()), field.getDataType());
}