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í.