java - Eclipselink实体类自动扫描发现非实体

标签 java orm jpa eclipselink

我已经激活了 Eclipselink 2.0 的自动检测模式来查找 @Entity 注解的类:

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

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

Caused by: Exception [EclipseLink-7161] (Eclipse Persistence Services - 2.0.2.v20100323-r6872): org.eclipse.persistence.exceptions.ValidationException Exception Description: Entity class [class com.example.domain.Image] has no primary key specified. It should define either an @Id, @EmbeddedId or an @IdClass. If you have defined PK using any of these annotations then make sure that you do not have mixed access-type (both fields and properties annotated) in your entity class hierarchy.

示例类:

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 注释的类不是实体?

最佳答案

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

关于java - Eclipselink实体类自动扫描发现非实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3462097/

相关文章:

java - 数组列表中的最小生成树

java - 将自定义标记添加到 Android 中的 Google map

java - 在 Java 中,什么时候我应该更喜欢 String 而不是 StringBuilder,反之亦然?

java - hibernate map member 的字段直接不用setter/getter

java - 如何编写这个 JPA 查询项?

java - 如何在 JPA 存储库之外定义存储过程

java - 如何让try-finally中的finally等待线程完成?

java - 使用 Quartz 轮询外部服务并通过 Atmosphere 将结果发送给客户端?

java - 如何将 Theta 360 度照片发布到 Facebook

java - Hibernate 以错误的顺序执行删除级联