我有一个@MappedSuperclass AbstractEntity,我用我所有的@Entity类。 它只要超类是在同一个Eclipse项目为我的实体完美的作品。 但因为我重用的几个项目之间的这种超,我只是想打破它到它自己的JAR文件。 当我这样做,(当然我添加JAR文件到构建路径),Eclipse中给出了我的@实体类的每一个错误:
该实体没有定义主键属性。
Eclipse中突出了@Entity注解为错误的来源。 当然,所有的类都从这个AbstractEntity继承。 包名称是在这两个项目中的相同。 该JAR项目拥有所有必需的构建路径 - 有在包含AbstractEntity的JAR文件的项目没有错误。
当我部署此我的应用程序服务器(JBoss的7.1),它工作正常。 这让我觉得这只是一个Eclipse问题,即它被错误地识别错误。
摘要实体:
package com.xyc.abc;
import java.io.Serializable;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
@MappedSuperclass
public abstract class AbstractEntity implements Serializable {
private static final long serialVersionUID = 1L;
private Long id;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
}
简单的实体类示例:
@Entity
public class TestEntity extends AbstractEntity {
...
}
我已经看到了一些其他职位说,问题可能是在超类的注解是干将上,而不是在领域 - 这只是一个问题,如果你没有你的实体,这是我做内的其他JPA批注。 有任何想法吗?