# jOOQ 3.17

Published articles for jOOQ 3.17.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Using jOOQ's Implicit Join From Within the JOIN .. ON Clause

DevFeed: [Using jOOQ's Implicit Join From Within the JOIN .. ON Clause](<https://devfeed.tech/articles/using-jooq-s-implicit-join-from-within-the-join-on-clause-28970.md>)

Original publisher: [Read original article](<https://blog.jooq.org/using-jooqs-implicit-join-from-within-the-join-on-clause/>)

Author: lukaseder

Published: 2022-09-13T07:29:59Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [dictionary-views](<https://devfeed.tech/tags/dictionary-views.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implicit-join](<https://devfeed.tech/tags/implicit-join.md>), [information-schema](<https://devfeed.tech/tags/information-schema.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [pg-catalog](<https://devfeed.tech/tags/pg-catalog.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This tutorial explains how to use jOOQ's type-safe implicit JOINs from within an explicit JOIN ... ON clause. It uses PostgreSQL dictionary views and related tables as an example, and describes how jOOQ generates SQL while preserving operator precedence.

### Source excerpt

Starting with jOOQ 3.11, type safe implicit JOIN have been made available, and they've been enhanced to be supported also in DML statements in jOOQ 3.17. Today, I'd like to focus on a somewhat weird but really powerful use-case for implicit JOIN, when joining additional tables from within an explicit JOIN's ON clause. The use ... Continue reading Using jOOQ's Implicit Join From Within the JOIN .. ON Clause ->

## A Brief Overview over the Most Common jOOQ Types

DevFeed: [A Brief Overview over the Most Common jOOQ Types](<https://devfeed.tech/articles/a-brief-overview-over-the-most-common-jooq-types-28928.md>)

Original publisher: [Read original article](<https://blog.jooq.org/a-brief-overview-over-the-most-common-jooq-types/>)

Author: lukaseder

Published: 2022-09-06T12:30:37Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [API](<https://devfeed.tech/topics/api.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Structured-data](<https://devfeed.tech/topics/structured-data.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-design](<https://devfeed.tech/tags/api-design.md>), [cheat-sheet](<https://devfeed.tech/tags/cheat-sheet.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [context](<https://devfeed.tech/tags/context.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [dsl](<https://devfeed.tech/tags/dsl.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [logging](<https://devfeed.tech/tags/logging.md>), [overview](<https://devfeed.tech/tags/overview.md>), [queryparts](<https://devfeed.tech/tags/queryparts.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [sql](<https://devfeed.tech/tags/sql.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [type-system](<https://devfeed.tech/tags/type-system.md>), [types](<https://devfeed.tech/tags/types.md>)

### AI overview

This tutorial provides a cheat sheet of the most important types in the jOOQ API, covering configuration, scopes, settings, and DSL APIs. It notes that jOOQ 3.17 includes more than 160 settings and explains how several type groups support query construction, execution, lifecycle management, and dependency injection.

### Source excerpt

For new users working with jOOQ for the first time, the number of types in the jOOQ API can be overwhelming. The SQL language doesn't have many such "visible" types, although if you think about SQL the way jOOQ does, then they're there just the same, but hidden from users via an English style syntax. ... Continue reading A Brief Overview over the Most Common jOOQ Types ->

## jOOQ 3.17 Supports Implicit Join also in DML

DevFeed: [jOOQ 3.17 Supports Implicit Join also in DML](<https://devfeed.tech/articles/jooq-3-17-supports-implicit-join-also-in-dml-28950.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jooq-3-17-supports-implicit-join-also-in-dml/>)

Author: lukaseder

Published: 2022-08-25T08:07:00Z

Content type: article

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [correlated-subqueries](<https://devfeed.tech/tags/correlated-subqueries.md>), [delete](<https://devfeed.tech/tags/delete.md>), [dml-join](<https://devfeed.tech/tags/dml-join.md>), [implicit-join](<https://devfeed.tech/tags/implicit-join.md>), [join](<https://devfeed.tech/tags/join.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [mariadb](<https://devfeed.tech/tags/mariadb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [sql](<https://devfeed.tech/tags/sql.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

The article explains that jOOQ 3.17 adds support for implicit join path expressions in DML statements. It describes correlated-subquery emulation, DML JOIN support for selected RDBMS, and planned translation using updatable views in Oracle.

### Source excerpt

Since jOOQ 3.11, implicit joins have been supported. An implicit join is a JOIN (mostly a LEFT JOIN) that is generated implicitly because of the presence of a path expression. If SQL supported the syntax natively, it would look like this: All that is is convenience for a bunch of explicitly written LEFT JOIN expressions: ... Continue reading jOOQ 3.17 Supports Implicit Join also in DML ->

## A Condition is a Field

DevFeed: [A Condition is a Field](<https://devfeed.tech/articles/a-condition-is-a-field-28929.md>)

Original publisher: [Read original article](<https://blog.jooq.org/a-condition-is-a-field/>)

Author: lukaseder

Published: 2022-08-24T09:09:11Z

Content type: tutorial

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [boolean](<https://devfeed.tech/tags/boolean.md>), [boolean-type](<https://devfeed.tech/tags/boolean-type.md>), [condition](<https://devfeed.tech/tags/condition.md>), [data-type](<https://devfeed.tech/tags/data-type.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [logic](<https://devfeed.tech/tags/logic.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [predicate](<https://devfeed.tech/tags/predicate.md>), [sql](<https://devfeed.tech/tags/sql.md>), [three-valued-logic](<https://devfeed.tech/tags/three-valued-logic.md>)

### AI overview

The article explains that, starting with jOOQ 3.17, the Condition type extends Field<Boolean>, allowing conditions to be projected directly and used wherever boolean value expressions are accepted. It describes compatibility differences between PostgreSQL and Oracle and jOOQ's emulation of the feature while preserving three-valued logic.

### Source excerpt

Starting with jOOQ 3.17, the Condition type extends the Field<Boolean> type. Because, that's what the SQL standard thinks it is, in sorts: The exact definition contains intermediate rules, but you get the idea. A <predicate> (which is a Condition in jOOQ) can be used wherever a <boolean value expression> can be used, which again can ... Continue reading A Condition is a Field ->

## Create Dynamic Views with jOOQ 3.17's new Virtual Client Side Computed Columns

DevFeed: [Create Dynamic Views with jOOQ 3.17's new Virtual Client Side Computed Columns](<https://devfeed.tech/articles/create-dynamic-views-with-jooq-3-17-s-new-virtual-client-side-computed-columns-28936.md>)

Original publisher: [Read original article](<https://blog.jooq.org/create-dynamic-views-with-jooq-3-17s-new-virtual-client-side-computed-columns/>)

Author: lukaseder

Published: 2022-06-30T14:46:35Z

Content type: article

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [client-side-computed-columns](<https://devfeed.tech/tags/client-side-computed-columns.md>), [computed-columns](<https://devfeed.tech/tags/computed-columns.md>), [java](<https://devfeed.tech/tags/java.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [maven](<https://devfeed.tech/tags/maven.md>), [sql](<https://devfeed.tech/tags/sql.md>), [virtual-client-side-computed-columns](<https://devfeed.tech/tags/virtual-client-side-computed-columns.md>), [virtual-computed-columns](<https://devfeed.tech/tags/virtual-computed-columns.md>)

### AI overview

This article explains jOOQ 3.17's client-side computed columns, which let developers define computed expressions that are substituted into SQL statements or evaluated when values are written. It contrasts them with server-side computed columns and discusses using the feature to create dynamic view-like behavior without database views.

### Source excerpt

One of jOOQ 3.17's coolest new features are client side computed columns. jOOQ 3.16 already added support for server side computed columns, which many of you appreciate for various reasons. What's a computed column? A computed column is a column that is derived ("computed") from an expression. It cannot be written to. It works like ... Continue reading Create Dynamic Views with jOOQ 3.17's new Virtual Client Side Computed Columns ->

## 3.17.0 Release with Computed Columns, Audit Columns, Pattern Matching, Reactive Transactions and Kotlin Coroutine Support

DevFeed: [3.17.0 Release with Computed Columns, Audit Columns, Pattern Matching, Reactive Transactions and Kotlin Coroutine Support](<https://devfeed.tech/articles/3-17-0-release-with-computed-columns-audit-columns-pattern-matching-reactive-transactions-and-kotlin-coroutine-support-28926.md>)

Original publisher: [Read original article](<https://blog.jooq.org/3-17-0-release-with-computed-columns-audit-columns-pattern-matching-reactive-transactions-and-kotlin-coroutine-support/>)

Author: lukaseder

Published: 2022-06-22T15:15:05Z

Content type: release

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [audit-columns](<https://devfeed.tech/tags/audit-columns.md>), [client-side-computed-columns](<https://devfeed.tech/tags/client-side-computed-columns.md>), [computed-columns](<https://devfeed.tech/tags/computed-columns.md>), [coroutine](<https://devfeed.tech/tags/coroutine.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [implicit-join](<https://devfeed.tech/tags/implicit-join.md>), [java-17](<https://devfeed.tech/tags/java-17.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-17](<https://devfeed.tech/tags/jooq-3-17.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [pattern-matching](<https://devfeed.tech/tags/pattern-matching.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [reactive-programming](<https://devfeed.tech/tags/reactive-programming.md>), [reactive-transactions](<https://devfeed.tech/tags/reactive-transactions.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [sql](<https://devfeed.tech/tags/sql.md>), [stored](<https://devfeed.tech/tags/stored.md>), [stored-computed-column](<https://devfeed.tech/tags/stored-computed-column.md>), [udt](<https://devfeed.tech/tags/udt.md>), [virtual](<https://devfeed.tech/tags/virtual.md>), [virtual-computed-column](<https://devfeed.tech/tags/virtual-computed-column.md>)

### AI overview

The jOOQ 3.17.0 release adds client-side computed columns for read and write operations, audit columns, pattern-matching SQL transformations, and more implicit JOIN capabilities. It also sets Java 17 as the baseline for the Open Source Edition while commercial distributions continue supporting Java 8 and 11.

### Source excerpt

This release contiues the work from previous releases around more sophisticated SQL transformation capabilities, including: Client side computed columns for both read and write operations Audit columns Pattern matching SQL transformations More implicit JOIN capabilities Client side computed columns A ground breaking new core feature available in all commercial distributions isthe new client side computed ... Continue reading 3.17.0 Release with Computed Columns, Audit Columns, Pattern Matching, Reactive Transactions and Kotlin Coroutine Support ->