Available in versions: Dev (3.19) | Latest (3.18) | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10 | 3.9
Code generation
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
While optional, source code generation is one of jOOQ's main assets if you wish to increase developer productivity. jOOQ's code generator takes your database schema and reverse-engineers it into a set of Java classes modelling tables, records, sequences, POJOs, DAOs, stored procedures, user-defined types and many more.
The essential ideas behind source code generation are these:
- Increased IDE support: Type your Java code directly against your database schema, with all type information available
- Type-safety: When your database schema changes, your generated code will change as well. Removing columns will lead to compilation errors, which you can detect early.
The following chapters will show how to configure the code generator and how to generate various artefacts.
Table of contents
- 6.1.
- Configuration and setup of the generator
- 6.2.
- Advanced generator configuration
- 6.2.1.
- Logging
- 6.2.2.
- Jdbc
- 6.2.3.
- Generator
- 6.2.4.
- Database
- 6.2.4.1.
- Database name and properties
- 6.2.4.2.
- RegexFlags
- 6.2.4.3.
- Includes and Excludes
- 6.2.4.4.
- Include object types
- 6.2.4.5.
- Record Version and Timestamp Fields
- 6.2.4.6.
- Synthetic identities
- 6.2.4.7.
- Synthetic primary keys
- 6.2.4.8.
- Override primary keys
- 6.2.4.9.
- Date as timestamp
- 6.2.4.10.
- Ignore procedure return values (deprecated)
- 6.2.4.11.
- Unsigned types
- 6.2.4.12.
- Catalog and schema mapping
- 6.2.4.13.
- Catalog and schema version providers
- 6.2.4.14.
- Forced types
- 6.2.4.14.1.
- Matching of forced types
- 6.2.4.14.2.
- Data type rewriting
- 6.2.4.14.3.
- Qualified converters
- 6.2.4.14.4.
- Inline converters
- 6.2.4.14.5.
- Data type bindings
- 6.2.4.15.
- Table valued functions
- 6.2.5.
- Generate
- 6.2.5.1.
- Annotations
- 6.2.5.2.
- Covariant overrides
- 6.2.5.2.1.
- Overriding as()
- 6.2.5.2.2.
- Overriding rename()
- 6.2.5.3.
- Default catalog and schema
- 6.2.5.4.
- Fluent setters
- 6.2.5.5.
- Fully Qualified Types
- 6.2.5.6.
- Global Artefacts
- 6.2.5.7.
- Java Time Types
- 6.2.6.
- Output target configuration
- 6.3.
- Programmatic generator configuration
- 6.4.
- Custom generator strategies
- 6.5.
- Matcher strategies
- 6.5.1.
- MatcherRule
- 6.5.2.
- Matching schemas
- 6.5.3.
- Matching tables
- 6.5.4.
- Matching fields
- 6.5.5.
- Matching routines
- 6.5.6.
- Matching sequences
- 6.5.7.
- Matcher examples
- 6.6.
- Custom code sections
- 6.7.
- Generated global artefacts
- 6.8.
- Generated tables
- 6.9.
- Generated records
- 6.10.
- Generated POJOs
- 6.11.
- Generated Interfaces
- 6.12.
- Generated DAOs
- 6.13.
- Generated sequences
- 6.14.
- Generated procedures
- 6.15.
- Generated UDTs
- 6.16.
- Mapping generated catalogs and schemas
- 6.17.
- Code generation for large schemas
- 6.18.
- Code generation and version control
- 6.19.
- JPADatabase: Code generation from entities
- 6.20.
- XMLDatabase: Code generation from XML files
- 6.21.
- XMLGenerator: Generating XML
- 6.22.
- Running the code generator with Maven
- 6.23.
- Running the code generator with Ant
- 6.24.
- Running the code generator with Gradle
- 6.25.
- Features requiring generated code
previous : next |
References to this page
- The jOOQ User Manual
- Different use cases for jOOQ
- jOOQ as a SQL builder with code generation
- jOOQ as a SQL executor
- jOOQ for CRUD
- jOOQ for PROs
- Step 3: Code generation
- Using jOOQ with Flyway
- jOOQ and JavaFX
- SQL building
- Object qualification
- FROM clause
- Generating DDL from objects
- Catalog and schema expressions
- Generated Tables
- Aliased generated tables
- ON KEY clause
- Array and cursor unnesting
- Table columns
- Generated table columns
- User-defined functions
- User-defined aggregate functions
- BOOLEAN columns
- Record vs. TableRecord
- POJOs
- Sequence execution
- Stored procedures and functions
- Oracle Packages
- Oracle member procedures
- Simple CRUD
- IDENTITY values
- Non-updatable records
- Optimistic locking
- DAOs
Feedback
Do you have any feedback about this page? We'd love to hear it!