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 public class EntityA { @Id private int id; private EntityB entityReference; }
import javax.persistence.Entity; import javax.persistence.Id; @Entity public class 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 public class 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í.