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 Schnellkorrektur fügt der Klasse einen Konstruktor ohne Argumente hinzu.

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 Schnellkorrektur fügt den Konstruktor ohne Argumente hinzu:

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.