Az OpenJPA megvalósításban az attribútumok, amelyek maguk is
egyedosztályok, alapértelmezés szerint nincsenek tárolva.
Az EclipseLink alapértelmezett viselkedése eltérő, és megpróbálja tárolni
ezeket az attribútumokat az adatbázisban.
Ha meg szeretné tartani az OpenJPA viselkedést, amely figyelmen kívül
hagyja az annotáció nélküli egyedattribútumokat, akkor EclipseLink
környezetben adja hozzá a javax.persistence.Transient
annotációt ezekhez az attribútumokhoz.
Ez a szabály megjelöli a JPA annotációkkal nem rendelkező
egyedosztályokat.
Ha az eszköz nem találja a hivatkozott osztályt, akkor
egy figyelmeztetést naplóz az Eclipse hibanaplóba. Lehet, hogy az eszköz
nem találja meg ezeket az osztályokat, ha a függő projektek vagy osztályok
nem érhetők el, vagy fordítási problémák történtek.
A gyorsjavítás hozzáadja a @Transient annotációt az
attribútumhoz.
A szabály a következő egyedosztályban megjelöli az
entityReference mezőt.
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class EntityA { @Id private int id; private EntityB entityReference; } |
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class EntityB { @Id private int id; } |
A gyorsjavítás hozzáadja a @Transient annotációt és az
import utasítást.
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class EntityA { @Id private int id; @Transient private EntityB entityReference; } |
A problémával és más OpenJPA - EclipseLink átállítási problémákkal kapcsolatos információkért tekintse meg az OpenJPA - EclipseLink JPA átállítás: Leképezések útmutatót.