Hibernate Mappé Superclasse des relations et dominante

J'ai un résumé MappedSuperClass, Participant, qui est prolongé de trois types de "Participant". Chacun utilise ensuite son propre genre de "Projet", également un résumé MappedSuperClass. Cependant, je veux la classe de base pour en savoir plus sur les Projets afin que je puisse écrire du code générique pour interagir avec les Participants. Comment puis-je spécifier en utilisant Hibernate annotations? et comment vais-je le remplacer dans la ExtendedParticipant et ExtendedProject classes?

Chaque type de Participant, et chaque type de Projet, ont leurs propres tables de base de données avec les données existantes et les id (pas unique sur les tables) que je ne peux pas changer.

Le code suivant me donne l'IDE d'erreur "Beaucoup d'un attribut ne devrait pas être Mappé Superclasse'".

@MappedSuperclass
public abstract class Participant implements Persistable {

    ...

    @ManyToOne
    @JoinColumn(name = "project_id")
    public Project getProject() {
        return project;
    }

    public void setProject(Project project) {
        this.project = project;
    }

    ...
}

et le Projet de classe qui est un peu la même chose avec le même problème:

@MappedSuperclass
public abstract class Project implements Persistable {

    ...

    @OneToMany
    public List<Participant> getParticipants() {
        return participants;
    }

    public void setProject(List<Participant> participants) {
        this.participants = participants;
    }

    ...
}

OriginalL'auteur Andrew | 2010-07-12