2010-10-28 25 views
5

sto avendo il seguente disegno per il mio progetto di ibernazione:@ManyToMany in un MappedSuperclass astratto

@MappedSuperclass 
public abstract class User { 
    private List<Profil> profile; 

    @ManyToMany (targetEntity=Profil.class) 
    public List<Profil> getProfile(){ 
     return profile; 
    } 
    public void setProfile(List<Profil> profile) { 
     this.profile = profile; 
    } 
} 

@Entity 
@Table(name="kunde") 
public class Kunde extends User { 
    private Date birthdate; 
    @Column(name="birthdate") 
    @Temporal(TemporalType.TIMESTAMP) 
    public Date getBirthdate() { 
     return birthdate; 
    } 
    public void setBirthdate(Date birthdate) { 
     this.birthdate= birthdate; 
    } 
} 

@Entity 
@Table(name="employee") 
public class Employee extends User { 
    private Date startdate; 
    @Column(name="startdate") 
    @Temporal(TemporalType.TIMESTAMP) 
    public Date getStartdate() { 
     return startdate; 
    } 
    public void setStartdate(Date startdate) { 
     this.startdate= startdate; 
    } 
} 

Come si può vedere, il cappello utente un rapporto ManyToMany al profilo.

@Entity 
@Table(name="profil") 
public class Profil extends GObject { 
    private List<User> user; 

    @ManyToMany(mappedBy = "profile", targetEntity = User.class) 
    public List<User> getUser(){ 
     return user; 
    } 
    public void setUser(List<User> user){ 
     this.user = user; 
    } 
} 

Se io ora cerco di creare un dipendente, ottengo un'eccezione hibernate:

org.hibernate.AnnotationException: Uso di @OneToMany o @ManyToMany mira una classe non mappata: de .ke.objects.bo.profile.Profil.user [de.ke.objects.bo.user.User]

Come posso utilizzare un ManyToMany-relazione al profilo utente sulla superclasse, quindi funziona per Kunde e Empl oyee?

Grazie in anticipo.

+0

ciao, sei stato in grado di risolvere questo problema? Sto affrontando lo stesso problema. – tarkikshah

risposta