當屬性以 @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 移轉:對映手冊。