Las anotaciones ElementCollection deben ir acompañadas por una anotación Column definida

Cuando un atributo se anota con @ElementCollection, se crea una tabla independiente para el atributo que incluye el ID y el valor del atributo. En OpenJPA, la columna para el atributo anotado se llama element, mientras que EclipseLink denomina la columna basándose en el nombre del atributo. Para conservar la compatibilidad con las tablas creadas con OpenJPA, añada una anotación @Column con el atributo name establecido en element.

Esta regla realiza un examen en búsqueda de anotaciones @ElementCollection que no tienen la anotación @Column con un atributo name. Una solución automatizada agregará una anotación @Column o editará una anotación @Column existente que no tenga un atributo de nombre.

Por ejemplo, la regla señala la anotación @ElementCollection en la clase de entidad de acceso de campo siguiente, porque no tiene una anotación @Column.

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

@Entity
clase pública ElementCollectionEntity {@Id private int id; @ElementCollection private List <Serie> listofStrings;}

Una corrección automática añadirá la anotación @Column.

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

@Entity
clase pública ElementCollectionEntity {@Id private int id; @ElementCollection
    @Column(name = "element") private List <String> listofStrings;}

Si desea más información sobre este problema y otros problemas de migración de OpenJPA a EclipseLink, consulte la guía Migración de OpenJPA a EclipseLink JPA: Correlaciones.