我已经激活了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注释类不是实体?
答案 0 :(得分:1)
问题的根源是一个编译过的类,之前有一个@Entity
注释。编译后的类文件仍然有这个注释,因此Eclipselink认为它是一个实体。运行maven clean
后,一切都按预期工作。