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 classe pública MissingNoArgConstructorEntidade { @Id private int id; public MissingNoArgConstructorEntidade (int id) { este.id = id; }}
A correção rápida inclui o construtor sem argumento:
import javax.persistence.Entity; import javax.persistence.Id; @Entity classe pública MissingNoArgConstructorEntidade { @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.