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.
importare javax.persistence.Entity; importare javax.persistence.Id; @Entità public class EntityA { @Id private int; private EntityB entityReference; }
importare javax.persistence.Entity; importare javax.persistence.Id; @Entità public class EntityB { @Id private int; }
Una correzione automatica aggiungerà le annotazioni @Transient e la dichiarazione di importazione.
importare javax.persistence.Entity; importare javax.persistence.Id; importare javax.persistence.Transient; @Entità public class EntityA { @Id private int; @Transiente private EntityB entityReference; }
Per informazioni su questo problema e altri problemi della migrazione da OpenJPA a EclipseLink, vedere la guida OpenJPA to EclipseLink JPA Migration: Mappings.