@Entity不识别@MappedSuperclass中的@Id
我正在尝试为一组实体创建一个基类,以减少编码工作和重复。我的想法是,基类具有公共元数据字段,子类处理其唯一属性。
我的基类:
@MappedSuperclass
public abstract class FinanceEntityBean {
protected Long id;
@Version
private long version;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
public Long getId() {
return id;
}
public void setId(final Long id) {
this.id = id;
}
}
第一个实体:
@Entity
@Table(name = "tag")
public class Tag extends FinanceEntityBean {
}
我已经使用此代码编写了测试,以在标记实体上执行CRUD函数,并且它们都工作正常。
我的问题是 - 为什么Eclipse(Indigo)坚持认为它有一个错误:Tag
The entity has no primary key attribute defined
我现在把它改成了警告,所以我的代码可以编译,但我很好奇为什么Eclipse不高兴,以及我是否误解了什么。
这是有效的 JPA 2.0 代码吗?Hibernate 4.1.5 是我的 JPA 提供程序。