别名生成的表
适用于 ✅ 开源版 ✅ 专业版 ✅ 企业版
当你执行表别名化并从生成的别名表解引用字段时,jOOQ的代码生成器的强大之处会更加明显。通过示例可以最好地说明这一点
-- Select all books by authors born after 1920, -- named "Paulo" from a catalogue: SELECT * FROM author a JOIN book b ON a.id = b.author_id WHERE a.year_of_birth > 1920 AND a.first_name = 'Paulo' ORDER BY b.title
// Declare your aliases before using them in SQL: Author a = AUTHOR.as("a"); Book b = BOOK.as("b"); // Use aliased tables in your statement create.select() .from(a) .join(b).on(a.ID.eq(b.AUTHOR_ID)) .where(a.YEAR_OF_BIRTH.gt(1920) .and(a.FIRST_NAME.eq("Paulo"))) .orderBy(b.TITLE) .fetch();
正如你在上面的示例中看到的,在生成的表上调用as()
会返回与该表相同类型的对象。这意味着生成的对象可用于从别名表解引用字段。这在让你的 Java 编译器检查 SQL 语句的语法方面非常强大。 如果你从表中删除一列,则从该表别名解引用该列将导致编译错误。
方言支持
此示例使用 jOOQ
select(a.ID).from(a)
翻译成以下特定方言的表达式
所有方言
SELECT a.ID FROM AUTHOR a
使用 jOOQ 3.21 生成。早期 jOOQ 版本的支持可能有所不同。 在我们的网站上翻译您自己的 SQL
反馈
你对此页面有任何反馈吗? 我们很乐意听到!