How to customise a jOOQ Configuration that is injected using Spring Boot

Starting from Spring Boot 2.5, there's a handy new callback that you can implement, called DefaultConfigurationCustomizer, where the word DefaultConfiguration corresponds to jOOQ's DefaultConfiguration. You can simply create a class like this in your project: import org.jooq.conf.RenderQuotedNames; import org.jooq.impl.DefaultConfiguration; import org.springframework.boot.autoconfigure.jooq.*; import org.springframework.context.annotation.*; @Configuration public class Config { @Bean public DefaultConfigurationCustomizer configurationCustomiser() { return (DefaultConfiguration … Continue reading How to customise a jOOQ Configuration that is injected using Spring Boot

Using JDK Collectors to De-duplicate parent/child nested collections

In classic SQL (i.e. before jOOQ's awesome MULTISET operator), nested collections were fetched using ordinary (outer) joins. An example of such a query would be a query running against the sakila database to fetch actors and their films. Using jOOQ: Result<?> result = ctx.select( ACTOR.ACTOR_ID, ACTOR.FIRST_NAME, ACTOR.LAST_NAME, FILM.FILM_ID, FILM.TITLE) .from(ACTOR) .leftJoin(FILM_ACTOR).on(ACTOR.ACTOR_ID.eq(FILM_ACTOR.ACTOR_ID)) .leftJoin(FILM).on(FILM_ACTOR.FILM_ID.eq(FILM.FILM_ID)) .orderBy( ACTOR.ACTOR_ID, FILM.FILM_ID) … Continue reading Using JDK Collectors to De-duplicate parent/child nested collections

Why You Should Use jOOQ With Code Generation

I'm answering many jOOQ questions on Stack Overflow, and a lot of times. The problem has the same cause: People not using jOOQ's code generator. The main reason people seem not to be using it, is because it takes some extra time to set up, but as with anything well designed, the initial investment will … Continue reading Why You Should Use jOOQ With Code Generation