Today, jOOQ 3.11 has been released with support for 4 new databases, implicit joins, diagnostics, and much more

New Databases Supported

At last, 4 new SQL dialects have been added to jOOQ! These are:

jOOQ Professional Edition

Aurora MySQL Edition

Aurora PostgreSQL Edition

Azure SQL Data Warehouse

jOOQ Enterprise Edition

Implicit Joins

One of the really cool features in ORMs like Hibernate, Doctrine, and others isthe capability of using a relationship graph notation to access another entity'scolumns through what is often called "implicit joins."

Instead of explicitly joining a to-one relationship to access its columns:

When rendering this query, the implicit join graph will be calculated on the flyand added behind the scenes to the BOOK table. This works for queries ofarbitrary complexity and on any level of nested SELECT.

DiagnosticsListener SPI

The purpose of this SPI is to sanitize your SQL language, JDBC, and jOOQ APIusage. Listeners can listen to events such as:

duplicateStatements (similar SQL is executed, bind variables should be used)

repeatedStatements (identical SQL is executed, should be batched or rewritten)

tooManyColumnsFetched (not all projected columns were needed)

tooManyRowsFetched (not all fetched rows were needed)

The great thing about this SPI is that it can be exposed to clients through theJDBC API, in case of which the diagnostics feature can reverse engineer yourJDBC or even JPA generated SQL. Ever wanted to detect N+1 queries fromHibernate? Pass those Hibernate-generated queries through this SPI.

Formal Java 10 Support

jOOQ 3.11 is the first release that is formally integration tested with Java 10.To use jOOQ with Java 10, use the Java 8 distribution, which has not yet beenmodularized, but contains Automatic-Module-Name specification to be forwardcompatible with future, modularised jOOQ distributions.

Additionally, package names between jOOQ, jOOQ-meta, and jOOQ-codegen have beencleaned up to prevent duplicate package names, and the JAXB dependency has beenadded explicitly to the various artifacts.

Other Great Improvements

Finally, asterisks (SELECT * or SELECT t.*) are formally supported in the API.

Collations can now be specified on a variety of syntax elements

The org.jooq.Comment type has been added, and DDL statements for it

The DefaultBinding implementation has been rewritten for better performance

Several performance improvements in jOOQ's internals

Many more DDL statements are supported including GRANT and REVOKE

Support for the EXPLAIN statement

FETCH n PERCENT ROWS and TOP n PERCENT clauses are supported

Better org.jooq.Name and org.jooq.Named API for identifier handling

Support for PostgreSQL 10

Support for SQL Server 2017

Support for DB2 11

Upgraded MariaDB support for window functions, inv dist functions, WITH

jOOU dependency updated to 0.9.3

jOOR dependency updated to 0.9.8

Server output (e.g. DBMS_OUTPUT) can now be fetched automatically, by jOOQ