The jOOQ User Manual. Multiple Pages : Code generation : Advanced generator configuration : Database : Includes and Excludes | previous : next |
Perhaps the most important elements of the code generation configuration are used for the inclusion and exclusion of content as reported by your database meta data configuration
These expressions match any of the following object types, either by their fully qualified names (catalog.schema.object_name
), or by their names only (object_name
):
- Array types
- Domains
- Enums
- Links
- Packages
- Queues
- Routiens
- Sequences
- Tables
- UDTs
Excludes match before includes, meaning that something that has been excluded cannot be included again. Remember, these expressions are regular expressions with default flags, so multiple names need to be separated with the pipe symbol "|"
, not with commas, etc. For example:
XML configuration (standalone and Maven)
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd"> <generator> <database> <includes>.*</includes> <excludes> UNUSED_TABLE # This table (unqualified name) should not be generated | PREFIX_.* # Objects with a given prefix should not be generated | SECRET_SCHEMA\.SECRET_TABLE # This table (qualified name) should not be generated | SECRET_ROUTINE # This routine (unqualified name) ... </excludes> </database> </generator> </configuration>
Programmatic configuration
configuration .withGenerator(new Generator( .withDatabase(new Database() .withIncludes(".*") .withExcludes("UNUSED_TABLE|PREFIX_.*|SECRET_SCHEMA\\.SECRET_TABLE|SECRET_ROUTINE"))));
Gradle configuration
myConfigurationName(sourceSets.main) { generator { database { includes = '.*' excludes = 'UNUSED_TABLE|PREFIX_.*|SECRET_SCHEMA\\.SECRET_TABLE|SECRET_ROUTINE' } } }
A special, additional option allows for specifying whether the above two regular expressions should also match table columns. The following example will hide an INVISIBLE_COL
in any table (and also tables called this way, of course):
XML configuration (standalone and Maven)
<configuration xmlns="http://www.jooq.org/xsd/jooq-codegen-3.11.0.xsd"> <generator> <database> <includes>.*</includes> <excludes>INVISIBLE_COL</excludes> <includeExcludeColumns>true</includeExcludeColumns> </database> </generator> </configuration>
Programmatic configuration
configuration .withGenerator(new Generator( .withDatabase(new Database() .withIncludes(".*") .withExcludes("INVISIBLE_COL") .withIncludeExcludeColumns(true))));
Gradle configuration
myConfigurationName(sourceSets.main) { generator { database { includes = '.*' excludes = 'INVISIBLE_COL' includeExcludeColumns = true } } }