Quando um atributo é anotado com @ElementCollection,
uma tabela separada é criada para o atributo que inclui o ID e valor
do atributo.
No OpenJPA, a coluna para o atributo anotado é denominada element, enquanto o
EclipseLink nomeia a coluna com base no nome do atributo. Para permanecer compatível com
tabelas que foram criadas com OpenJPA, inclua uma anotação @Column com o atributo name configurado para element.
Esta regra faz a varredura para encontrar anotações @ElementCollection que não possuem a
anotação @Column com um atributo name.
Uma correção automatizada adicionará uma anotação @Column ou editará uma anotação @Column existente que não tenha um atributo name.
Por exemplo, a regra finaliza a anotação @ElementCollection na classe de
entidade de acesso a campo a seguir porque ela não possui uma anotação @Column.
import java.util.List; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class ElementCollectionEntity {@Id private int id; @ElementCollection private List <String> listofStrings;}
Uma correção automática adicionará a anotação @Column.
import java.util.List; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Id; @Entity classe pública ElementCollectionEntidade {@Id private int id; @ElementCollection @Column(nome = "element") private List <String> listofStrings;}
Para obter informações sobre esse problema e outros problemas de migração do OpenJPA para o EclipseLink, consulte o guia Migração do OpenJPA para o EclipseLink JPA: mapeamentos.