Я пытаюсь создать базовый класс для набора сущностей для уменьшения усилий и дублирования кодирования. Я думал, что базовый класс имеет общие поля метаданных, а дочерние классы имеют свои уникальные атрибуты.
Мой базовый класс:
@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 в объекте Tag, и все они работают нормально.
Мой вопрос: почему Eclipse (Indigo) настаивает на том, что Tag
имеет ошибку:
The entity has no primary key attribute defined
Я изменил это на предупреждение, так что мой код будет компилироваться, но мне любопытно, почему Eclipse не доволен, и если я что-то не понял.
Является ли это действующим кодом JPA 2.0? Hibernate 4.1.5 - мой поставщик JPA.