Если у класса сущности 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: преобразования.