Configuring jOOQ to generate interfaces
Besides POJOs and DAOs, jOOQ can generate an interface for each table. Each column is associated with a getter and a setter. In Maven, this can be done as shown here:
<generate> <interfaces>true</interfaces> <immutableInterfaces>true</immutableInterfaces> </generate>
Basically, jOOQ generates interfaces that look like Spring Data's so-called interfaces-based closed projections. We can use these interfaces for mapping results sets exactly as we do with closed projections.
Nevertheless, note that at the time of writing, this feature has been proposed to be removed. You can track the deprecation here: https://github.com/jOOQ/jOOQ/issues/10509.
Next, let's continue with the programmatic configuration of the jOOQ Code Generator.