En OpenJPA, los atributos que son ellos mismos clases de entidad no se persisten de forma predeterminado.
EclipseLink tiene un comportamiento predeterminado diferente e intenta persistir estos atributos en la base de datos.
Para mantener el comportamiento de OpenJPA de ignorar atributos de entidad sin anotar, añada la anotación javax.persistence.Transient a estos atributos en EclipseLink.
Esta regla señala atributos sin anotaciones JPA que son clases de entidad.
Si la herramienta no puede encontrar la clase referenciada, registra un aviso en el registro de errores de Eclipse. Es posible que la herramienta no encuentre la clase, si no se puede acceder a los proyectos o las clases dependientes o si hay errores de compilación.
Una corrección automática añadirá la anotación @Transient al atributo.
En la clase de entidad siguiente, el campo entityReference se señala con la regla.
importar javax.persistence.Entity; importar javax.persistence.Id; @Entidad public class EntityA { @Id privado int id; private EntidadB entidadReferencia; }
importar javax.persistence.Entity; importar javax.persistence.Id; @Entidad public class EntityB { @Id privado int id; }
Una corrección automática añadirá las anotaciones @Transient y la sentencia import.
importar javax.persistence.Entity; import javax.persistence.Id; importar javax.persistence.Transient; @Entidad public class EntityA { @Id privado int id; @Transient private EntidadB entityReference; }
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.