Entitätsobjekte mit Konstruktoren müssen auch einen Standardkonstruktor haben

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.