jOOQ 3.11 已发布,新增支持 4 个新的数据库、implicit joins、诊断等等。
新增支持的数据库
jOOQ 专业版
jOOQ 企业版
Implicit Joins
在 Hibernate,Doctrine 等 ORM 中,其中一个非常酷的功能就是使用关系图表符号来访问另一个实体的列,这通常被称为"implicit joins"。
而不是显式地加入一对一的关系来访问其列:
SELECT author.first_name, author.last_name, book.title
FROM book
JOIN author ON book.author_id = author.id
开发团队表示希望能够使用以下符号直接访问这些列:
SELECT book.author.first_name, book.author.last_name, book.title
FROM book
这个 join 是隐式的,应该被隐式添加。当使用代码生成器时,通过 jOOQ 现在可以这样做:
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 类库。
示例代码:
// 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();
领取专属 10元无门槛券
私享最新 技术干货