Le annotazioni ElementCollection devono essere accompagnate da un'annotazione Column definita

Quando un attributo viene annotato con @ElementCollection, viene creata una tabella separata per l'attributo che include l'ID attributo ed il valore. In OpenJPA, la colonna dell'attributo annotato viene denominata element, mentre EclipseLink denomina la colonna in base al nome dell'attributo. Per mantenere la compatibilità con le tabelle create con OpenJPA, aggiungere un'annotazione @Column con l'attributo nome impostato su element.

Questa regola ricerca le annotazioni @ElementCollection che non hanno l'annotazione @Column con un attributo name. Una correzione automatica aggiungerà un'annotazione @Column o modificherà un'annotazione @Column esistente che non ha un attributo name.

Ad esempio, la regola contrassegna l'annotazione @ElementCollection nella classe dell'entità di accesso del campo seguente, perché non ha un'annotazione @Column.

Importa java.util.List;
importa javax.persistence.ElementCollection;
importa javax.persistence.Entity;
Importazione javax.persistence.Id;

@Entity
classe pubblica ElementCollectionEntity {@Id private int id; @ElementCollection private List <String> listofStrings;}

Una correzione automatica aggiungerà l'annotazione @Column.

Importa java.util.List;
importa javax.persistence.ElementCollection;
importa javax.persistence.Entity;
Importazione javax.persistence.Id;

@Entity
public class ElementCollectionEntity {@Id private int id; @ElementCollection
    @Column(name = "element") private List <String> listofStrings;}

Per informazioni su questo problema e altri problemi della migrazione da OpenJPA a EclipseLink, consultare la guida OpenJPA to EclipseLink JPA Migration: Mappings.