Objekty entity s konstruktory musí mít také výchozí konstruktor

Má-li třída entity rozhraní JPA (Java Persistence API) konstruktor s argumenty, musí mít třída rovněž výchozí konstruktor bez argumentů. Implementace OpenJPA automaticky generuje konstruktor bez argumentů, ale implementace EclipseLink nikoli.

Toto pravidlo prochází třídy entity s anotacemi @Entity nebo @MappedSuperclass. Třídy entity s konstruktory, které nemají také konstruktor bez argumentů, jsou označeny. Automatická oprava přidá do třídy prázdný konstruktor bez argumentů.

Pravidlo značí například následující třídu entity:

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída MissingNoArgConstructorentita {
    @Id private int id; public MissingNoArgConstructorEntity (int id) { this.id = id;
    }}}

Automatická oprava přidá konstruktor bez argumentů:

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída MissingNoArgConstructorentita {
    @Id private int id; public MissingNoArgConstructorEntity () {
    } veřejný MissingNoArgConstructorEntita (int id) { this.id = id;
    }}}

Informace o tomto problému a jiných problémech migrace OpenJPA na EclipseLink viz příručka Migrace OpenJPA na EclipseLink JPA: Mapování.