我正在嘗試爲一組實體創建一個基類,以減少編碼工作量和重複。我的想法是,基類有共同的元數據字段,而子類處理它們的獨特屬性。@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的(藍色)堅持認爲Tag
有一個錯誤:
The entity has no primary key attribute defined
我已經改變了一個警告現在,所以我的代碼編譯,但我好奇爲什麼Eclipse不開心,如果我誤解了一些東西。
這是否爲有效的JPA 2.0代碼? Hibernate 4.1.5是我的JPA提供者。
此警告/錯誤是錯誤的,您可以在首選項中將其禁用 – Kemoda