Anotace ElementCollection musí být doprovázena definovanou anotací Column

Je-li atribut anotován pomocí @ElementCollection, vytvoří se samostatná tabulka pro atribut, který obsahuje ID atributu a hodnotu. V rozhraní OpenJPA je sloupec pro anotovaný atribut pojmenován element, zatímco EclipseLink pojmenovává sloupec na základě názvu atributu. Chcete-li zůstat kompatibilní s tabulkami vytvořenými v rozhraní OpenJPA, přidejte anotaci @Column s atributem name nastaveným na element.

Toto pravidlo prochází anotace @ElementCollection, které nemají anotaci @Column s atributem name. Automatická oprava přidá anotaci @Column nebo upraví existující anotaci @Column anotaci, která nemá atribut name.

Například pravidlo označí anotaci @ElementCollection v následující třídě entity přístupu k poli, protože nemá anotaci @Column.

import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída ElementCollectionEntita {@Id private int id; @ElementCollection private List <String> listofStrings;}

Automatická oprava přidá anotaci @Column.

import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída ElementCollectionEntita {@Id private int id; @ElementCollection
    @Column(name = "element") private List <String> listofStrings;}

Informace o tomto problému a jiných problémech migrace OpenJPA na EclipseLink viz příručka Migrace OpenJPA na EclipseLink JPA: Mapování.