我正在尝试为一组实体创建一个基类,以减少编码工作和重复。我的想法是基类具有公共元数据字段,子类处理它们的独特属性。
我的基类:
@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 {
}
我已经使用此代码编写了测试,以在 Tag 实体上执行 CRUD 函数,并且它们都工作正常。
我的问题是 - 为什么 Eclipse (Indigo) 坚持认为Tag
有错误:
The entity has no primary key attribute defined
我现在已将其更改为警告,以便我的代码可以编译,但我很好奇 Eclipse 为什么不高兴,以及我是否误解了某些东西。
这是有效的 JPA 2.0 代码吗?Hibernate 4.1.5 是我的 JPA 提供者。