Az annotáció nélküli egyedattribútumok egy Transient annotációt igényelnek

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.