Az OpenJPA esetén a java.util.Collection<E>
felületből öröklő attribútumok nem alapértelmezett perzisztencia
típusúak, így ezek az attribútumok csak akkor lesznek tárolva, ha
meg vannak jelölve annotációval.
Az EclipseLink alapértelmezett viselkedése eltérő, és megkísérli 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
gyűjtemény attribú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ő attribútumokat,
amelyek a java.util.Collection<E> felülettől
öröklődnek, beleértve a következő alfelületeket:
A következő Entity osztályban a szabály megjelöli a
collectionField és a listField attribútumokat.
import java.util.Collection; import java.util.List; import javax.persistence.Entity; import javax.persistence.Id; @Entity nyilvános osztály UnannotatedCollectionentitás { @Id privát int id; privát Collection collectionField; privát ListField;}
Az automatikus javítás hozzáadja a @Transient megjegyzést és az import utasítást.
import java.util.Collection; import java.util.List; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Transient; @Entity nyilvános osztály UnannotatedCollectionentitás { @Id privát int id; @Transient private Collection collectionField; @Transient privát ListField;}
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.