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 automática adicionará um construtor vazio sem argumento à 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 automatizada adicionará 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.