Neanotované atributy entity vyžadují anotaci Transient

V rozhraní OpenJPA nejsou standardně zachovány atributy, které jsou samy o sobě třídy entity. 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ů entity, přidejte do těchto atributů v EclipseLink anotaci javax.persistence.Transient.

Toto pravidlo značí atributy bez anotací JPA, které jsou třídami entity. Pokud nástroj nemůže najít odkazovanou třídu, zaznamená varování do protokolu chyb Eclipse. Nástroj nemusí najít třídu v případě, že závislé projekty nebo třídy nejsou přístupné, nebo se vyskytly chyby kompilace. Automatická oprava přidá k atributu anotaci @Transient.

V následující třídě entity je pole entityReference označeno pravidlem.

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

@Entity
veřejná třída EntityA {
    @Id private int id; private EntityB entityReference;}
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
veřejná třída EntityB {
    @Id private int id;}

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

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

@Entity
veřejná třída EntityA {
    @Id private int id; @Transient private EntityB entityReference;}

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í.