Available in versions: Dev (3.21) | Latest (3.20) | 3.19 | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11
Overriding rename()
Supported by ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
As of jOOQ 3.20.8, the rename() method is not declared in any super type yet, but it will be eventually, see #13937.
Occasionally, users will want to rename a table for the scope of a single query, rather than globally as with the runtime schema and table mapping feature. This can be done with Table.rename(Name):
// Overridden Book.rename() returns Book, not Table<Book>:
Book b = BOOK.rename("b");
// Type safe dereferencing of TableField:
Field<String> title = b.TITLE;
Unlike as(), this does not affect generated SQL other than assuming a table b of the same structure as BOOK exists in the schema.
If generating these overrides is not a desireable default, it can be deactivated explicitly globally using the following flag:
<configuration>
<generator>
<database>
<renameMethodOverrides>false</renameMethodOverrides>
</database>
</generator>
</configuration>
See the configuration XSD, standalone code generation, and maven code generation for more details.
new org.jooq.meta.jaxb.Configuration()
.withGenerator(new Generator()
.withDatabase(new Database()
.withRenameMethodOverrides(false)
)
)
See the configuration XSD and programmatic code generation for more details.
import org.jooq.meta.jaxb.*
configuration {
generator {
database {
isRenameMethodOverrides = false
}
}
}
See the configuration XSD and gradle code generation for more details.
configuration {
generator {
database {
renameMethodOverrides = false
}
}
}
See the configuration XSD and gradle code generation for more details.
// The jOOQ-codegen-gradle plugin has been introduced in version 3.19. // Please use the official plugin instead of the third party plugin that was recommended before.
Feedback
Do you have any feedback about this page? We'd love to hear it!