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