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

目录和模式表达式

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

大多数数据库都了解某种命名空间,用于将对象(如存储过程序列等)分组到一个公共目录或模式中。jOOQ 使用类型 org.jooq.Catalogorg.jooq.Schema 来建模这些分组,遵循 SQL 标准命名。

目录

目录是模式的集合。在许多数据库中,目录对应于数据库或数据库实例。通常,目录是完全独立的,并且它们的表不能在单个查询中以任何方式连接或组合。此处的例外是 SQL Server 和 Sybase ASE,它们允许完全引用来自多个目录的表

SELECT *
FROM [Catalog1].[Schema1].[Table1] AS [t1]
JOIN [Catalog2].[Schema2].[Table2] AS [t2] ON [t1].[ID] = [t2].[ID]

某些方言,包括 MariaDB、MemSQL、MySQL,将目录(数据库)和模式视为同一件事。jOOQ 将这些方言中的数据库视为模式。

默认情况下,Settings.renderCatalog 标志处于开启状态。如果数据库支持查询多个目录,jOOQ 将生成完全限定的对象名称,包括目录名称。有关此设置的更多信息,请参见手册中关于设置的部分

jOOQ 的代码生成器为每个目录生成子包。

模式

模式是对象的集合,例如表。大多数数据库都支持某种模式(一些嵌入式数据库除外,如 Access、Firebird、SQLite)。在大多数数据库中,模式是一个独立的结构实体。在 Oracle 中,模式和用户/所有者在很大程度上被视为同一件事。一个使用完全限定表(包括模式名称)的查询示例是

SELECT *
FROM "Schema1"."Table1" AS "t1"
JOIN "Schema2"."Table2" AS "t2" ON "t1"."ID" = "t2"."ID"

默认情况下,Settings.renderSettings 标志处于开启状态。 因此,jOOQ 将生成完全限定的对象名称,包括设置名称。 有关此设置的更多信息,请参见手册中关于设置的部分

反馈

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

The jOOQ Logo