可用版本: 开发版 (3.21) | 最新版 (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11

别名表表达式

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

只有少数几种表表达式可以利用代码生成来提供前面显示的 SQL 语法类型安全,其中使用了生成的表。但是,所有表都允许通过Table::field方法取消引用它们的字段

// "Type-unsafe" aliased table:
Table<?> a = AUTHOR.as("a");

// Get fields from a:
Field<?> id = a.field("ID");
Field<?> firstName = a.field("FIRST_NAME");

对于派生表,包括 jOOQ 生成其综合表名称的未命名的派生表也是如此。

Table<?> named = table(select(AUTHOR.ID).from(AUTHOR)).as("t");
Table<?> unnamed = table(select(AUTHOR.ID).from(AUTHOR));

Field<?> id = named.field("ID");   // Produces a t.ID reference
Field<?> id = unnamed.field("ID"); // Produces a <generated-alias>.ID reference

请注意,如果您知道 ID 列与 AUTHOR.ID 列的类型相同,您可以再次使用它来取消引用该列,这在取消引用表字段部分中再次进行了解释。

// Now with inferred Integer type
Field<Integer> id = named.field(AUTHOR.ID);   // Produces a t.ID reference
Field<Integer> id = unnamed.field(AUTHOR.ID); // Produces a <generated-alias>.ID reference

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo