În OpenJPA, atributele care sunt ele însele clase entitate nu sunt persistente implicit.
EclipseLink are un comportament implicit diferit şi încearcă să persiste aceste atribute
la baza de date.
Pentru a păstra comportamentul OpenJPA de ignorare a atributelor entitate neadnotate, adăugaţi
adnotarea javax.persistence.Transient la aceste atribute în EclipseLink.
Această regulă semnalează atribute fără adnotări JPA care sunt clase entitate.
Dacă unealta nu poate găsi clasa la care se face referire, ea înregistrează în istoric
un avertisment în istoricul de erori Eclipse. Unealta s-ar putea să nu găsească clasa
dacă proiectele dependente sau clasele nu sunt accesibile sau există
erori de compilare.
O remediere automată va adăuga adnotarea @Transient la atribut.
În următoarea clasă entitate, câmpul entityReference este semnalat de regulă.
import javax.persistence.Entity; import javax.persistence.Id; @Entity clasa publică EntityA { @Id private int id; private EntityB entityReference; }
import javax.persistence.Entity; import javax.persistence.Id; @Entity clasa publică EntityB { @Id private int id; }
O soluție automată va adăuga adnotările @Transient și declarația de import.
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; @Entity clasa publică EntityA { @Id private int id; @Transient private EntityB entityReference; }
Pentru informaţii despre această problemă şi alte probleme de migrare de la OpenJPA la EclipseLink, vedeţi ghidul Migrarea OpenJPA la EclipseLink JPA: Mapări.