Os atributos de coleção não anotados requerem uma anotação Transiente

No OpenJPA, os atributos que herdam da interface java.util.Collection<E> não são um tipo persistente padrão, portanto, estes atributos não são persistidos a menos que eles sejam anotados. O EclipseLink tem um comportamento padrão diferente e tenta persistir estes atributos para o banco de dados. Para manter o comportamento do OpenJPA e ignorar atributos de coleção anotados, inclua a anotação javax.persistence.Transient neste atributos no EclipseLink.

Esta regra sinaliza atributos sem nenhuma anotação JPA que herdam da interface java.util.Collection<E>, incluindo as subinterfaces a seguir:

Na classe de entidade a seguir, os atributos e collectionField e listField são sinalizados pela regra.

import java.util.Collection;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
classe pública UnannotatedCollectionEntidade {
    @Id private int id; private Collection collectionField; private Lista listField;}

Uma correção automática adicionará as anotações @Transient e a instrução de importação.

import java.util.Collection;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;

@Entity
classe pública UnannotatedCollectionEntidade {
    @Id private int id; @Transient private Collection CollectionField;
    @Transient private List listField;}

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.