Los atributos de colección sin anotar requieren una anotación transitoria

En OpenJPA, los atributos que se heredan de la interfaz java.util.Collection<E> no son de un tipo persistente predeterminado, así pues, estos atributos no se persisten, a menos que se hayan anotado. EclipseLink tiene un comportamiento predeterminado diferente e intenta persistir estos atributos en la base de datos. Para conservar el mantenimiento de OpenJPA de ignorar atributos de colección sin anotar, añada la anotación javax.persistence.Transient a estos atributos en EclipseLink.

Esta regla señala atributos sin anotaciones JPA que se heredan de la interfaz java.util.Collection<E>, incluidas las interfaces secundarias siguientes:

En la clase de entidad siguiente, los atributos collectionField y listField se señalan mediante la regla.

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

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

@Entity
clase pública UnannotatedCollectionEntity {
    @Id private int id; private Collection collectionField; private List listField;}

Una corrección automática añadirá las anotaciones @Transient y la sentencia import.

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

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

@Entity
clase pública UnannotatedCollectionEntity {
    @Id private int id; @Transient private Collection collectionField;
    @Transient private ListaField;}

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.