Cuando una clase de entidad JPA (Java Persistence API) tiene un constructor con argumentos, la clase también debe tener un constructor predeterminado sin argumentos. La implementación de OpenJPA genera automáticamente el constructor sin argumentos, pero la implementación EclipseLink no lo hace.
Esta regla realiza un examen en búsqueda de clases de entidad con las anotaciones @Entity o @MappedSuperclass. Se señalan las clases de entidad con constructores que tampoco tienen un constructor sin argumentos.
La corrección automática añadirá un constructor vacío sin argumentos a la clase.
Por ejemplo, la regla señala la clase de entidad siguiente:
import javax.persistence.Entity; import javax.persistence.Id; @Entity clase pública MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity (int id) { this.id = id; }}
La corrección automática añadirá el constructor sin argumentos:
import javax.persistence.Entity; import javax.persistence.Id; @Entity clase pública MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity () { } public MissingNoArgConstructorEntity (int id) { this.id = id; }}
Si desea más información sobre este problema y otros problemas de migración de OpenJPA a EclipseLink, consulte la guía Migración de OpenJPA a EclipseLink JPA: Correlaciones.