Eclipselink实体类autoscan查找非实体

时间:2010-08-11 19:32:33

标签: java orm jpa eclipselink

我已经激活了Eclipselink 2.0的自动检测模式,以找到@Entity带注释的类:

<exclude-unlisted-classes>false</exclude-unlisted-classes>

但Eclipselink告诉我,我应该为我的实体添加一个ID:

  

引起:异常[EclipseLink-7161](Eclipse Persistence Services - 2.0.2.v20100323-r6872):org.eclipse.persistence.exceptions.ValidationException   异常描述:实体类[类com.example.domain.Image]没有指定主键。它应该定义@ Id,@ EmbeddedId或@IdClass。如果已使用任何这些注释定义了PK,请确保在实体类层次结构中没有混合访问类型(注释的字段和属性)。

示例类:

import java.util.HashSet;
import java.util.Set;

//@Entity No annotation!
public class Image extends File {

    private int width;
    private int height;
    private Set<Image> variants = new HashSet<Image>();

}

我如何告诉Eclipselink不是@Entity注释类不是实体?

1 个答案:

答案 0 :(得分:1)

问题的根源是一个编译过的类,之前有一个@Entity注释。编译后的类文件仍然有这个注释,因此Eclipselink认为它是一个实体。运行maven clean后,一切都按预期工作。