@Entity ne reconnaît pas le @Id dans une @MappedSuperclass

Je suis d'essayer de créer une classe de base pour un ensemble d'entités afin de réduire l'effort de codage et de duplication. Ma pensée est que la classe de base a la commune de champs de métadonnées, et les classes enfant à composer avec leurs attributs uniques.

Ma classe de base:

@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;
    }
}

La première entité:

@Entity
@Table(name = "tag")
public class Tag extends FinanceEntityBean {
}

J'ai écrit des tests à l'aide de ce code pour faire du CRUD fonctions sur l'Étiquette d'entité, et ils sont tous fonctionne bien.

Ma question est, pourquoi ne Eclipse (Indigo) insistent pour que Tag a une erreur:

The entity has no primary key attribute defined

J'ai modifié cela pour un avertissement pour l'instant donc mon code compile, mais je suis curieux de savoir pourquoi Eclipse n'est pas heureux, et si j'ai mal compris quelque chose.

Est-ce valable JPA 2.0 code? Hibernate 4.1.5 est mon fournisseur JPA.

source d'informationauteur Jay | 2012-08-27