当 Java 持久性 API (JPA) 实体类具有带有该参数的构造函数时,该类还必须具有缺省的无参数构造函数。OpenJPA 实现会自动生成无参构造函数,但 EclipseLink 实现不会。
该实体类的规则扫描带有 @Entity 或 @MappedSuperclass 注释。将标记有构造函数但也没有无参构造函数的实体类。
快速修订会向类添加空的无参构造函数。
例如,规则标记以下实体类:
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class MissingNoArgConstructorEntity { @Id private int id; public MissingNoArgConstructorEntity(int id) { this.id = id; } } |
该快速修订添加无参构造函数:
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; } } |
有关此问题和其他 OpenJPA 到 EclipseLink 迁移问题的信息,请参阅 OpenJPA to EclipseLink JPA Migration: Mappings 指南。