Wenn eine Java Persistence API (JPA)-Entitätsklasse einen Konstruktor mit Argumenten hat, muss die Klasse auch einen Standardkonstuktor ohne Argumente haben. Die OpenJPA-Implementierung generiert automatisch den Konstruktor ohne Argumente, aber die EclipseLink-Implementierung nicht.
Diese Regel sucht nach Entitätsklasse mit der Annotation @Entity oder @MappedSuperclass. Entitätsklassen mit Konstruktoren, die keinen Konstruktor ohne Argumente haben, werden markiert.
Die automatische Korrektur wird der Klasse einen leeren Konstruktor ohne Argumente hinzufügen.
Die Regel markiert beispielsweise die folgende Entitätsklasse:
import javax.persistence.Entity; import javax.persistence.Id @Entity Allgemein zugängliche Klasse MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity (int id) { this.id = id; }}
Die automatische Korrektur wird den Konstruktor ohne Argumente hinzufügen:
import javax.persistence.Entity; import javax.persistence.Id @Entity Allgemein zugängliche Klasse MissingNoArgConstructorEntity { @Id private int id: public MissingNoArgConstructorEntity () { } public MissingNoArgConstructor-Entität (int id) { this.id = id; }}
Informationen zu diesem Problem und zu weiteren Problemen bei der Migration von OpenJPA auf EclipseLink finden Sie in der Veröffentlichung OpenJPA to EclipseLink JPA Migration: Mappings.