【发布时间】:2010-08-11 19:32:33
【问题描述】:
我已经激活了 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 异常描述:实体类 [class 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 注释的类不是实体?
【问题讨论】:
-
什么版本的 EclipseLink?您确定已编译类中的 Image 没有 @Entity 注释吗?文件是实体吗?
-
“文件作为实体”的好提示!
File类是一个实体,我将其注释掉以进行测试,但是由 Eclipselink 检查的编译类不是最新的。在mvn clean之后一切正常。
标签: java orm jpa eclipselink