ElementCollection アノテーションには定義された Column アノテーションが付随する必要がある

属性に @ElementCollection アノテーションが付けられている場合、属性用に別個のテーブルが作成され、そこには属性の ID と値が含まれます。 OpenJPA では、このアノテーションが付けられた属性の列に element という名前が付けられるのに対し、EclipseLink ではその属性の名前に基づいて列に名前が付けられます。OpenJPA で作成されたテーブルとの互換性を維持するため、name 属性を element に設定した @Column アノテーションを追加します。

この規則は、name 属性が付加された @Column アノテーションを持たない @ElementCollection アノテーションをスキャンします。 自動修正では、 @Column アノテーションが追加されるか、 名前属性を持たない既存の @Column アノテーションが編集されます。

例えば、以下のフィールド・アクセス・エンティティー・クラスの @ElementCollection アノテーションは @Column アノテーションを持たないため、この規則はこのアノテーションにフラグを立てます。

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

@Entity
公開クラス ElementCollectionEntity {@Id private int id; @ElementCollection private List <String> listofStrings;}

自動修正により、 @Column アノテーションが追加される。

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

@Entity
公開クラス ElementCollectionEntity {@Id private int id; @ElementCollection
    @Column(name = "element") private List <String> listofStrings;}

この問題や、OpenJPA から EclipseLink へのマイグレーションに関するその他の問題については、 OpenJPA to EclipseLink JPA Migration: Mappings ガイドを参照してください。