Can JOOQ be used without code generation?

java, jooq

Solution

Is JOOQ appropriate for the above use case?

Yes, many jOOQ users use only the runtime library without the code generator. Examples can be seen in the getting started guide.

Is there a java DSL for schema definition?

jOOQ wraps JDBC's `DatabaseMetaData` in `org.jooq.Meta`, which you can access via `DSLContext.meta()`. The objects returned from `Meta` are again jOOQ's `Schema`, `Table`, `Field` objects, which you can use with the rest of the API.

Using the code generator with a Java-driven database schema

On a side note, Vlad Mihalcea has written this very interseting blog post about how to use the jOOQ code generator in a Hibernate project, where the database is driven by the JPA-annotated Java model. Maybe that is useful to you as well.

Problem

I am assessing JOOQ for use in a new system that is still under development. I would like to avoid code generation when the database is being developed along with the application and simply plays a role of a persistent storage for this application. So, the database schema definition is expected to be driven by Java code (table definitions in java). Is JOOQ appropriate for the above use case? Is there a java DSL for schema definition?

Original source