New dialects:
jOOQ 3.20 ships with 2 new experimental dialects:
- ClickHouse in all editions, together with the jOOQ Open Supply Version
- Databricks within the jOOQ Enterprise Version
ClickHouse is a fast-moving SQL dialect with a historic vendor-specific syntax that’s steadily migrated to a extra requirements compliant different, which is why our assist remains to be experimental. Plenty of behaviours differ from what one would count on elsewhere, together with NULL dealing with, which may be very totally different from normal SQL. Future jOOQ variations will proceed deepening this integration.
Databricks affords a really promising SQL dialect with a variety of performance, which we’re going to cowl in full with the subsequent model jOOQ 3.21. An preliminary model of the dialect is shipped already in 3.20 as an experimental dialect. 3.20 will proceed to obtain bug fixes and Databricks enhancements as we work with early adopting prospects.
DuckDB enhancements
We proceed supporting numerous DuckDB SQL options, together with:
- ARRAY, ROW, and STRUCT assist
- MULTISET assist
- JSON assist
- Date time arithmetic
- Sequences
- Extra DDL assist
- Extra DML assist
- Spatial assist
- And far more
New modules
In an effort to higher combine with Reactor, in all probability the preferred reactive streams API on the JVM, we’ve added a brand new jOOQ-reactor-extensions module, which affords an implementation of the brand new SubscriberProvider
SPI, a brand new SPI within the Configuration that helps make jOOQ’s R2DBC particular internals Reactor Context conscious.
The jOOQ-beans-extensions module now hosts our assist for the @ConstructorProperties
annotation within the DefaultRecordMapper
, an annotation that’s positioned within the JDK’s jdk.desktop
module. This permits us to maneuver the heavy module dependency out of jOOQ’s core library, which is helpful for these functions that need to omit delivery the whole JDK and hold low footprints.
The jOOQ-jpa-extensions module now hosts our assist for the assorted JPA annotations like @Column
, @Desk
, additionally within the DefaultRecordMapper
, successfully eradicating the non-obligatory jakarta.persistence
dependency from the core library, in addition to providing different implementations of annotation primarily based mapping.
Help for Oracle kind hierarchies
Oracle is probably the most refined ORDBMS implementation, with a wealthy set of object-oriented PL/SQL language options. jOOQ 3.20 lastly provides assist for PL/SQL OBJECT kind hierarchies each in our code generator in addition to within the runtime library, making jOOQ an excellent robust match to your PL/SQL language utilization
This can be a industrial solely characteristic.
Higher spatial assist
Plenty of extra spatial features have been added to jOOQ’s spatial assist. These efforts additionally embrace many enhancements to the DuckDB and Oracle spatial implementations.
For extra data, discuss with:
This can be a industrial solely characteristic.
DECFLOAT assist
Quite a lot of dialects provide an extra decimal floating level information kind, DECFLOAT
, along with the binary floating level sorts REAL
(32 bit), DOUBLE PRECISION
(64 bit), and FLOAT
(variable sized). Our new org.jooq.Decfloat
kind permits for capturing these sorts in our code generator and runtime.
Synonym assist
Quite a lot of dialects assist the idea of a SYNONYM
or ALIAS
the place another title could be given to any object kind.
jOOQ 3.20 helps these synonyms each within the code generator in addition to the DDL API. Future jOOQ variations could proceed to enhance synonym assist, e.g. by producing kind aliases in Kotlin or Scala.
For extra data, discuss with:
This can be a industrial solely characteristic.
Hidden columns
Similar to just a few dialects assist hidden or invisible columns, that is now attainable in jOOQ as nicely, on the shopper facet. Hiding columns successfully removes them from:
- Asterisk expansions
selectFrom()
and comparable calls- Generated data, POJOs, and interfaces
On the similar time, the columns are nonetheless accessible for express references. This characteristic could be helpful for schema evolution functions, the place information of deprecated columns is stored round for historic functions. It really works nicely along with the column deprecation characteristic of the code generator:
For extra details about hidden columns, discuss with:
This can be a industrial solely characteristic.
Kotlin 2 and Scala 3 assist
Ranging from jOOQ 3.20, we formally assist each Kotlin 2 and Scala 3 and totally integration assessments each the core libraries in addition to the code generator and extension libraries on these language variations. For Scala assist, please additionally think about our assist matrix:
JDK baselines
The jOOQ Open Supply Version 3.20 will increase its baseline to JDK 21. Help for older JDKs is out there int he industrial distributions, see:
Report soiled monitoring
jOOQ has lengthy supported report soiled monitoring in its UpdatableRecord
permitting for a easy means of performing CRUD. With jOOQ 3.20, it is going to be attainable for customers to override the default behaviour of the soiled flag from a “touched” semantics to a “modified” semantics, successfully sending solely precise modifications to the database.
For extra data, discuss with:
DML be part of enhancements
jOOQ 3.20 now helps the helpful DELETE .. USING
and UPDATE .. FROM
syntaxes on all RDBMS by means of a brand new set of SQL transformations that enable for these vendor particular JOIN syntaxes for use in DML statements even within the absence of MERGE
assertion assist.
On the similar time, MERGE
itself additionally acquired an improve, together with:
BY SOURCE
andBY TARGET
assist- A number of
WHEN NOT MATCHED AND ..
clause assist
For extra data, discuss with:
Code era enhancements
Plenty of issues associated to the era of interfaces, immutablePojos, UDTs, and so on. have been addressed on this launch, making generated code extra sound for numerous configuration edge instances the place these options are mixed.
Guide search
We have now (eventually!) added in-page search performance to our person handbook, so customers can higher discover data on our web site.
Extra enhancements
For details about the numerous different minor enhancements, bug fixes, and so on., please discuss with the launch notes.