As anotações ElementCollection devem ser acompanhadas por uma anotação de Coluna definida

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.