Jooq 3.11.0 erschienen

Am 07.07.2018 wurde mit 3.11.0 die letzte Version von Jooq freigegeben.

Neues in Version 3.11.0

Neu in der Version 3.11.0 sind die implizieten Joins die man aus ORM Frameworks wie Hibernate, Doctrine oder anderen her kennt.

Beispiel für implizietes joinen

Gegeben seinen 2 Tabellen Buch und Author die über den Join miteinander verknüpft werden.

SELECT author.vorname, author.nachname, buch.titel
FROM buch
JOIN author ON buch.author_id = author.id

Das Framework Hibernate ist in der Lage dieses im internen Graphen zu erkennen und automatisch (impliziet) zu joinen und daher ist folgendes Query valide:

SELECT buch.author.vorname, buch.author.nachname, buch.titel FROM buch

In der neuen Version 3.11.0 wird im Codegenerator Code erzeugt, der die Berechnung des Graphen on the fly übernimmt und den Join hinzufügt. Somit ist folgender Code nun möglich:

ctx.select(BUCH.author().VORNAME, BUCH.author().NACHNAME, BUCH.TITEL)
   .from(BUCH)
   .fetch();

Dies kann auf beliebige Queries mit beliebiger Verschachtelungstiefe erfolgen.

Siehe auch type-safe-implicit-join-through-path-navigation-in-jooq-3-11.

Window Funktionen unter MariaDB 10.2 werden unterstützt

Mit dem Schließen des Tickets 7514 werden die Window Funktionen in MariaDB unterstützt.

Parser

Der Parser der SQL Statements parsen und in einen AST überführen kann wurde weiter verbessert. Eine Demo zum übersetzen von verschiedenen SQL-Dialekten steht unter translate zur Verfügung. Es wurden viele neue Klauseln und Funktionen verschiedener Hersteller in (DDL, DML) hinzugefügt.

Java 10 Support

Java 10 wird erstmals mit Integrationstest abgedeckt. Um eindeutige Paketnamen in den verschiedenen Modulen zu gewähren, wurde der Code entsprechend refaktorisiert.

Fehlerkorrekturen

Natürlich sind auch jede Menge weiterer Fehler in der Version behoben worden. Alle Fehler und weiteren Features sind auf der Notes Seite zu finden.

Scala wird aus OSS Version entfernt

Der Support für Scala wird ab Version 3.11.0 aus der OSS Version entfernt. Scala kann nur noch mit der Pro oder Enterprise Version verwendet werden.