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.
Az automatikus javítás hozzáadja a @Transient megjegyzést 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 nyilvános osztály EntityA { @Id privát int id; privát EntityB entityRefere;}
import javax.persistence.Entity; import javax.persistence.Id; @Entity nyilvános osztály EntityB { @Id privát int id;}
Az automatikus javítás hozzáadja a @Transient megjegyzést és az import utasítást.
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; @Entity nyilvános osztály EntityA { @Id privát int id; @Transient private EntityB entityRefere;}
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.