ElementCollection 註釋必須隨附已定義的 Column 註釋

當屬性以 @ElementCollection 標註時,會針對該屬性建立個別的表格來包括屬性 ID 和值。 在 OpenJPA 中,已標註屬性的直欄名稱為 element,而 EclipseLink 則會根據屬性的名稱來命名直欄。如果要維持與使用 OpenJPA 建立的表格相容,請新增 @Column 註釋,並將 name 屬性設為 element

此規則會掃描是否有 @ElementCollection 註釋不具含 name 屬性的 @Column 註釋。 自動修正將新增 @Column 註解或編輯現有沒有 name 屬性的 沒有 name 屬性的 @Column 註解。

例如,此規則會標示下列欄位存取實體類別中的 @ElementCollection 註釋,因為其沒有 @Column 註釋。

匯入 java.util.List;
匯入 javax.persistence.ElementCollection;
匯入 javax.persistence.Entity;
匯入 javax.persistence.Id;

@Entity
Public class ElementCollectionEntity {
    
    @Id
    private int id;
    
    @ElementCollection
    私人 List<字串> listofStrings;
}

自動修正將新增 @Column 註解。

匯入 java.util.List;
匯入 javax.persistence.ElementCollection;
匯入 javax.persistence.Entity;
匯入 javax.persistence.Id;

@Entity
Public class ElementCollectionEntity {
    
    @Id
    private int id;
    
    @ElementCollection
    @Column(name = "element")
    私人 List<字串> listofStrings;
}

如需此問題以及其他 OpenJPA 至 EclipseLink 移轉問題的相關資訊,請參閱 OpenJPA 至 EclipseLink JPA 移轉:對映手冊。