声明与引用
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
// Alias the table BOOK
Book b = BOOK.as("B");
// Use the alias as a reference
create.select(b.ID)
// Use the alias as a declaration
.from(b)
.fetch();
在上面的例子中,当引用表别名时,jOOQ 只渲染别名,即 B。当声明表别名时,jOOQ 会同时渲染原始表及其别名,即 BOOK as B。
虽然偶尔进入第三种渲染模式(仅渲染原始表 BOOK,忽略别名)可能看起来很有用,但事实并非如此。 如果你想访问原始表(或列)引用,只需在你的代码中保留对它的引用即可。
暴露此行为的类型
以下类型的 org.jooq.QueryPart 暴露了这种上下文相关的渲染行为
-
org.jooq.Table: 表表达式可以是 别名表,可以在 FROM 子句 或其他语句的类似子句中声明。 -
org.jooq.Field: 字段表达式可以是 别名列,可以在 SELECT 子句 或各种语句的 RETURNING 子句 中声明。 -
org.jooq.CommonTableExpression: 公用表表达式可以在各种语句的 WITH 子句 中声明。 -
org.jooq.WindowDefinition: 窗口定义可以在 WINDOW 子句 中声明 SELECT 语句。 -
org.jooq.Parameter: 例程参数可以在 CREATE FUNCTION 或 CREATE PROCEDURE 语句中声明。
反馈
您对此页面有任何反馈吗? 我们很乐意听到!