J'ai une entité ProjectIdea qui peut avoir plusieurs genres.
J'ai donc deux classes qui possedent chacunes un attribut annoté ManyToMany qui représente la liste des objets avec lesquels ils sont reliés.

voici le code simplifié.

Classe ProjectIdea
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
  protected Set<IdeaKind> ideaKinds;
    @ManyToMany
    public Set<IdeaKind> getIdeaKinds() {
        return ideaKinds;
    }
    public void setIdeaKinds(Set<IdeaKind> ideaKinds) {
        this.ideaKinds = ideaKinds;
    }
Classe IdeaKind (genre de l'idée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
private Set<ProjectIdea> projectIdeas;
    @ManyToMany(mappedBy = "ideaKinds")
    public Set<ProjectIdea> getProjectIdeas() {
    return projectIdeas;
    }  
    public void setProjectIdeas(Set<ProjectIdea> projectIdeas) {
    this.projectIdeas = projectIdeas;
    }
J'aimerai ajouter une "ideaKind" a un "ProjectIdea". J'ai essayé ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
  ProjectIdea pi = (ProjectIdea)(em.find(ProjectIdea.class, Long.parseLong("1")));//je récupere celui d'id=1
            em.persist(pi);
 
            IdeaKind ik = (IdeaKind)(em.find(IdeaKind.class, Long.parseLong("1")));//je récupere celui d'id=1
            em.persist(ik);
 
            pi.getIdeaKinds().add(ik);
Seulement cela n'a aucun effet sur ma table générée automatiquement et qui représente la jointure entre les ProjectIdea et les IdeaKind.

Comment cela se fait il ?

P.S: j'ai le meme probleme avec une relation OneToMany et ManyToOne