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...