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
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 protected Set<IdeaKind> ideaKinds; @ManyToMany public Set<IdeaKind> getIdeaKinds() { return ideaKinds; } public void setIdeaKinds(Set<IdeaKind> ideaKinds) { this.ideaKinds = ideaKinds; }
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
9 private Set<ProjectIdea> projectIdeas; @ManyToMany(mappedBy = "ideaKinds") public Set<ProjectIdea> getProjectIdeas() { return projectIdeas; } public void setProjectIdeas(Set<ProjectIdea> projectIdeas) { this.projectIdeas = projectIdeas; }
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.
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);
Comment cela se fait il ?
P.S: j'ai le meme probleme avec une relation OneToMany et ManyToOne
Partager