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 listField;

}

A gyorsjavítás hozzáadja a @Transient annotációt é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 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.