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