Если у атрибута есть аннотация @ElementCollection, для него
создается отдельная таблица, содержащая его ИД и значение.
В OpenJPA столбец аннотированного атрибута называется element, а в
EclipseLink имя формируется на основе имени атрибута. Для обеспечения
совместимости с таблицами, созданными в OpenJPA, добавьте аннотацию @Column с атрибутом name, равным element.
Это правило находит аннотации @ElementCollection, у которых нет аннотации @Column с атрибутом name.
Автоматическое исправление добавит аннотацию @Column или отредактирует существующую аннотацию @Column, в которой отсутствует атрибут name.
Например, правило отметит аннотацию @ElementCollection в следующем классе, так как у нее нет аннотации @Column.
импорт 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 <строка> listofStrings; }
Автоматическое исправление добавит аннотацию @Column.
импорт java.util.List; import javax.persistence.ElementCollection; import javax.persistence.Entity; import javax.persistence.Id; @Entity public class ElementCollectionEntity { @Id private int id; @ElementCollection @Column(name = "element") private List <строка> listofStrings; }
Для получения дополнительной информации об этой проблеме и других проблемах, возникающих при миграции OpenJPA в EclipseLink, обратитесь к руководству Миграция OpenJPA в EclipseLink JPA: преобразования.