К атрибутам набора без аннотаций необходимо добавить аннотацию Transient

В OpenJPA считается, что атрибуты, наследующие интерфейс java.util.Collection<E>, по умолчанию не относятся к сохраняемому типу, поэтому они не хранятся постоянно, если не имеют аннотации. В EclipseLink по умолчанию применяется другой принцип работы: эти атрибуты сохраняются в базе данных. Для того чтобы сохранить такой режим работы, как в OpenJPA, то есть игнорировать атрибуты коллекции без аннотаций, добавьте аннотацию javax.persistence.Transient к этим атрибутам в EclipseLink.

Это правило отмечает атрибуты без аннотаций JPA, наследующих интерфейс java.util.Collection<E>, включая следующие субинтерфейсы:

В следующем классе сущности правило отметит атрибуты collectionField и listField.

импорт java.util.Collection; импорт java.util.List; импорт javax.persistence.Entity; импорт javax.persistence.Id; @Entity public class UnannotatedCollectionEntity { @Id private int id; private Collection collectionField; private List listField; }

Автоматическое исправление добавит аннотацию @Transient и оператор импорта.

импорт java.util.Collection; импорт java.util.List; импорт javax.persistence.Entity; импорт javax.persistence.Id; импорт javax.persistence.Transient; @Entity public class UnannotatedCollectionEntity { @Id private int id; @Transient private Collection CollectionField; @Transient private List listField; }

Для получения дополнительной информации об этой проблеме и других проблемах, возникающих при миграции OpenJPA в EclipseLink, обратитесь к руководству Миграция OpenJPA в EclipseLink JPA: преобразования.