A konstruktorokkal rendelkező Entity objektumoknak rendelkezniük kell egy alapértelmezett konstruktorral is

Amikor egy Java Persistence API (JPA) egyedosztálynak van egy argumentumokkal rendelkező konstruktora, az osztálynak kell tartalmaznia egy argumentumok nélküli konstruktort is. Az OpenJPA megvalósítás automatikusan előállítja az argumentumok nélküli konstruktort, azonban az EclipseLink megvalósítás nem.

Ez a szabály @Entity vagy @MappedSuperclass annotációval rendelkező egyedosztályokat keres. A szabály megjelöli a konstruktorral rendelkező egyedosztályokat, amelyeknek nincs egy argumentumok nélküli konstruktora is. A gyorsjavítás hozzáad egy üres, argumentumok nélküli konstruktort az osztályhoz.

Például a szabály megjelöli a következő egyedosztályt:

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

@Entity
public class MissingNoArgConstructorEntity {
    @Id
    private int id;

    public MissingNoArgConstructorEntity(int id) {
        this.id = id;
    }
}

A gyorsjavítás hozzáadja az argumentumok nélküli konstruktort:

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

@Entity
public class MissingNoArgConstructorEntity {
    @Id
    private int id;

    public MissingNoArgConstructorEntity() {
    }
    
    public MissingNoArgConstructorEntity(int id) {
        this.id = id;
    } 
}

A problémával és más OpenJPA - EclipseLink átállítási problémákkal kapcsolatos információkért tekintse meg az OpenJPA - EclipseLink JPA átállítás: Leképezések útmutatót.