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.
import javax.persistence.Entity; import javax.persistence.Id; @Entity clase pública EntityA { @Id private int id; private EntityB entityReference;}
import javax.persistence.Entity; import javax.persistence.Id; @Entity clase pública EntityB { @Id private int id;}
Una corrección automática añadirá las anotaciones @Transient y la sentencia import.
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; @Entity clase pública EntityA { @Id private int id; @Transient private EntityB 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.