Сущностные объекты с конструкторами должны иметь конструктор по умолчанию

Если у класса сущности Java Persistence API (JPA) есть конструктор с аргументами, то он должен содержать и конструктор без аргументов (конструктор по умолчанию). Реализация OpenJPA автоматически генерирует конструктор без аргументов, а реализация EclipseLink этого не делает.

Это правило находит классы сущностей с аннотацией @Entity или @MappedSuperclass. Те из них, у которых есть конструктор, но нет конструктора без аргументов, отмечаются правилом. Автоматическое исправление добавит в класс пустой неаргументированный конструктор.

Например, правило отмечает следующий класс сущности:

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

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

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

Автоматическое исправление добавит конструктор без аргументов:

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;
    } }

Для получения дополнительной информации об этой проблеме и других проблемах, возникающих при миграции OpenJPA в EclipseLink, обратитесь к руководству Миграция OpenJPA в EclipseLink JPA: преобразования.