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