首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

jOOQ 3.11:新增支持四款数据库以及 implicit joins

jOOQ 3.11 已发布,新增支持 4 个新的数据库、implicit joins、诊断等等。

新增支持的数据库

jOOQ 专业版

  • Aurora MySQL Edition
  • Aurora PostgreSQL Edition
  • Azure SQL Data Warehouse

jOOQ 企业版

  • Teradata

Implicit Joins

在 Hibernate,Doctrine 等 ORM 中,其中一个非常酷的功能就是使用关系图表符号来访问另一个实体的列,这通常被称为"implicit joins"。

而不是显式地加入一对一的关系来访问其列:

代码语言:javascript
复制
SELECT author.first_name, author.last_name, book.title
FROM book
JOIN author ON book.author_id = author.id

开发团队表示希望能够使用以下符号直接访问这些列:

代码语言:javascript
复制
SELECT book.author.first_name, book.author.last_name, book.title
FROM book

这个 join 是隐式的,应该被隐式添加。当使用代码生成器时,通过 jOOQ 现在可以这样做:

代码语言:javascript
复制
ctx.select(BOOK.author().FIRST_NAME, BOOK.author().LAST_NAME, BOOK.TITLE)
   .from(BOOK)
   .fetch();

在渲染此查询时,implicit join graph 会被计算,并在后台将其添加到 BOOK 表中。这适用于任意复杂度的查询以及任何级别的嵌套 SELECT。

更多细节请查看 https://blog.jooq.org/2018/02/20/type-safe-implicit-join-through-path-navigation-in-jooq-3-11/

详情请查看更新说明

jOOQ 高效的合并了复杂 SQL、类型安全、源码生成、Active Records、存储过程以及高级数据类型的 Java 类库。

示例代码:

代码语言:javascript
复制
// Create a new record and insert it into the database
TBookRecord book = create.newRecord(T_BOOK);
book.setTitle("My first book");
book.store();

// Update it with new values
book.setPublishedIn(2010);
book.store();

// Delete it
book.delete();
  • 发表于:
  • 原文链接https://www.oschina.net/news/96862/jooq-3-11-released
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券