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.
El arreglo rápido añade un constructor sin argumentos vacío a la clase.
Por ejemplo, la regla señala la clase de entidad siguiente:
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity(int id) { this.id = id; } } |
El arreglo rápido añade el constructor sin argumentos:
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; } } |
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.