In OpenJPA, gli attributi che sono essi stessi delle classi di entità non sono conservati per impostazione predefinita.
EclipseLink ha un comportamento predefinito differente e tenta di conservare questi attributi nel database.
Per adottare il comportamento di OpenJPA, che ignora gli attributo entità non annotati, aggiungere l'annotazione javax.persistence.Transient a tali attributi in EclipseLink.
Questa regola contrassegna gli attributi senza annotazioni JPA che sono classi di entità.
Se lo strumento non trova la classe di riferimento, registra un avviso nel log degli errori di Eclipse. Lo strumento potrebbe non trovare la classe se i progetti o le classi dipendenti non sono accessibili o se vi sono errori di compilazione.
Una correzione automatica aggiungerà l'annotazione @Transient all'attributo.
Nella classe di entità seguente, il campo entityReference viene contrassegnato dalla regola.
importa javax.persistence.Entity; Importazione javax.persistence.Id; @Entity Classe pubblica EntityA { @Id private int id; private EntityB entityReference;}
importa javax.persistence.Entity; Importazione javax.persistence.Id; @Entity Classe pubblica EntityB { @Id int privato id;}
Una correzione automatica aggiungerà le annotazioni @Transient e la dichiarazione di importazione.
importa javax.persistence.Entity; Importazione javax.persistence.Id; Importa javax.persistence.Transient; @Entity Classe pubblica EntityA { @Id private int id; @Transient private EntityB entityReference;}
Per informazioni su questo problema e altri problemi della migrazione da OpenJPA a EclipseLink, consultare la guida OpenJPA to EclipseLink JPA Migration: Mappings.