Extending the jOOQ built-in DAO
Let's assume that you have configured the jOOQ generator to output the generated DAO layer in the jooq.generated.tables.daos package. While the generated DAO exposes common query methods such as insert(), update(), delete(), and a few specific queries of the fetchBy...() or fetchRange...() types, we want to extend it with our own query methods.
Important Note
This is one of my favorite ways of writing a DAO layer in a Spring Boot and jOOQ application.
The jOOQ DAO layer contains a set of generated classes that mirrors the database tables and extends the built-in org.jooq.impl.DAOImpl class. For example, the jooq.generated.tables.daos.SaleRepository class (or, jooq.generated.tables.daos.SaleDao if you keep the default naming strategy used by jOOQ) corresponds to the SALE table. In order to extend SaleRepository, we have to take a quick look at its source code and highlight a part of it as follows:
@Repository public class SaleRepository...