Quando uma classe de entidade de API de Persistência Java (JPA) possui um construtor com argumentos, a classe também deve ter um construtor sem argumento padrão. A implementação OpenJPA automaticamente gera o construtor sem argumento, mas a implementação EclipseLink não.
Esta regra faz a varredura para encontrar classes de entidade com as anotações @Entity
ou @MappedSuperclass. Classes de entidade com construtores que também não possuem um construtor sem argumento são sinalizadas.
A correção rápida inclui um construtor sem argumento vazio na classe.
Por exemplo, a regra sinaliza a classe de entidade a seguir:
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity(int id) { this.id = id; } } |
A correção rápida inclui o construtor sem argumento:
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; } } |
Para obter informações sobre esse problema e outros problemas de migração do OpenJPA para o EclipseLink, consulte o guia Migração do OpenJPA para o EclipseLink JPA: mapeamentos.