コーディングの労力と重複を減らすために、一連のエンティティの基本クラスを作成しようとしています。私の考えでは、基本クラスには共通のメタデータフィールドがあり、子クラスは固有の属性を処理します。
私の基本クラス:
@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が満足していないのか、そして何かを誤解したのかどうか興味があります。
これは有効なJPA2.0コードですか?Hibernate4.1.5は私のJPAプロバイダーです。