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í.