Available in versions: Dev (3.20) | Latest (3.19) | 3.18 | 3.17 | 3.16 | 3.15 | 3.14 | 3.13 | 3.12 | 3.11 | 3.10
This documentation is for the unreleased development version of jOOQ. Click on the above version links to get this documentation for a supported version of jOOQ.
Generated POJOs
Applies to ✅ Open Source Edition ✅ Express Edition ✅ Professional Edition ✅ Enterprise Edition
Every table and view in your database will generate a POJO implementation that looks like this:
// JPA annotations can be generated, optionally @Entity @Table(name = "BOOK", schema = "TEST") public class Book implements java.io.Serializable // An interface common to records and pojos can be generated, optionally , IBook { // JSR-303 annotations can be generated, optionally @NotNull private Integer id; @NotNull private Integer authorId; @NotNull @Size(max = 400) private String title; // Every column generates a getter and a setter @Id @Column(name = "ID", unique = true, nullable = false, precision = 7) @Override public Integer getId() { return this.id; } @Override public void setId(Integer id) { this.id = id; } // [...] }
Flags influencing generated POJOs
These flags from the code generation configuration influence generated POJOs:
- daos: POJOs are a pre-requisite for DAOs. If DAOs are generated, POJOs are generated as well
- dateAsTimestamp: This influences all relevant getters and setters
- immutablePojos: Immutable POJOs have final members and no setters. All members must be passed to the constructor
- interfaces: If interfaces are generated, POJOs will implement them
- jpaAnnotations: JPA annotations are used on generated records (details here)
- jpaVersion: Version of JPA specification is to be used to generate version-specific annotations. If it is omitted, the latest version is used by default. (details here)
-
pojosAsJavaRecordClasses: If you're using the
JavaGenerator
, this will generate POJOs as (immutable) Java 16 record types -
pojosAsScalaCaseClasses: If you're using the
ScalaGenerator
(orScala3Generator
), this will generate POJOs as (mutable or immutable) Scala case classes -
pojosAsKotlinDataClasses: If you're using the
KotlinGenerator
, this will generate POJOs as (mutable or immutable) kotlin data classes -
pojosToString: Whether POJOs should have a generated
toString()
implementation. -
pojosEqualsAndHashCode: Whether POJOs should have generated
equals()
andhashCode()
implementations. - unsignedTypes: This influences all relevant getters and setters
- validationAnnotations: JSR-303 validation annotations are used on generated records (details here)
Flags controlling POJO generation
POJO generation can be activated using the pojos flag
Feedback
Do you have any feedback about this page? We'd love to hear it!