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

声明与引用

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

一些类型的 org.jooq.QueryPart 根据它们被渲染的上下文呈现不同的 SQL。上下文是

  • 对象正在被声明
  • 对象正在被引用

一个简单的例子是 的别名。例如

// 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 暴露了这种上下文相关的渲染行为

反馈

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

The jOOQ Logo