Neanotované atributy kolekce vyžadují anotaci Transient

V rozhraní OpenJPA nejsou atributy, které dědí z rozhraní java.util.Collection<E>, výchozí trvalý typ, takže tyto atributy nejsou trvalé, pokud nejsou anotovány. EclipseLink má jiné výchozí chování a snaží se tyto atributy trvale uchovat v databázi. Chcete-li zachovat chování OpenJPA v ignorování neanotovaných atributů kolekcí, přidejte do těchto atributů v EclipseLink anotaci javax.persistence.Transient.

Toto pravidlo značí atributy, které nemají žádné anotace JPA, které dědí z rozhraní java.util.Collection<E>, včetně následujících podrozhraní:

V následující třídě entity jsou atributy collectionField a listField označeny pravidlem.

import java.util.Collection;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída UnannotatedCollectionentita {
    @Id private int id; private Collection collectionField; private List listField;}

Automatická oprava přidá anotace @Transient a příkaz import.

import java.util.Collection;
import java.util.List;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Transient;

@Entity
veřejná třída UnannotatedCollectionentita {
    @Id private int id; @Transient private Collection collectionField;
    @Transient private listField;}

Informace o tomto problému a jiných problémech migrace OpenJPA na EclipseLink viz příručka Migrace OpenJPA na EclipseLink JPA: Mapování.