當「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 至 EclipseLink JPA 移轉:對映手冊。