未注释实体属性需要 Transient 注释

在 OpenJPA 中,缺省情况下不会持久保存本身是实体类的属性。EclipseLink 具有不同缺省行为并尝试将这些属性持久保存到数据库。 要保留忽略未注释实体属性的 OpenJPA 行为,请将 javax.persistence.Transient 注释添加到 EclipseLink 中的这些属性。

该规则标记不包含本身为实体类的 JPA 注释的属性。如果工具找不到引用的类,那么它将在 Eclipse 错误日志中记录警告。如果依赖项目或类不可访问或者存在编译错误,那么工具可能找不到类。 该快速修订会将 @Transient 注释添加到属性。

在以下实体类中,entityReference 字段由规则标记。

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

该快速修订会添加 @Transient 注释和 import 语句。

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

@Entity
public class EntityA {
    @Id
    private int id;
   
    @Transient
    private EntityB entityReference;
}

有关此问题和其他 OpenJPA 到 EclipseLink 迁移问题的信息,请参阅 OpenJPA to EclipseLink JPA Migration: Mappings 指南。