Az annotációval meg nem jelölt gyűjtemény attribútumok egy Transient annotációt igényelnek

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 public class UnannotatedCollectionEntity { @Id private int id; private Collection collectionField; private List list 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 public class UnannotatedCollectionEntity { @Id private int id; @Transient private Collection collectionField; @Transient private List list 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.