No OpenJPA, os atributos que em si são classes de entidade não são persistidos por padrão.
O EclipseLink possui um comportamento padrão diferente e tenta persistir estes atributos para o
banco de dados.
Para manter o comportamento do OpenJPA de ignorar os atributos de entidade não anotados, inclua
a anotação javax.persistence.Transient nestes atributos no EclipseLink.
Esta regra sinaliza atributos sem nenhuma anotação JPA que são classes de entidade.
Se a ferramenta não puder localizar a classe referenciada, ela registra um aviso no
log de erros do Eclipse. A ferramenta não pode localizar a classe se projetos ou
classes dependentes não estiverem acessíveis ou houver erros de compilação.
Uma correção automática adicionará a anotação @Transient ao atributo.
Na classe de entidade a seguir, o campo entityReference é sinalizado pela
regra.
importar javax.persistence.Entity; importar javax.persistence.Id; @Entity public class EntityA { @Id private int id; entityB entityReference privado; }
importar javax.persistence.Entity; importar javax.persistence.Id; @Entity public class EntityB { @Id private int id; }
Uma correção automática adicionará as anotações @Transient e a instrução de importação.
importar javax.persistence.Entity; importar javax.persistence.Id; importar javax.persistence.Transient; @Entity public class EntityA { @Id private int id; @Transiente private EntityB entityReference; }
Para obter informações sobre este problema e outros problemas de migração do OpenJPA para o EclipseLink, veja o guia OpenJPA to EclipseLink JPA Migration: Mappings.