Bonsoir,
j'ai une relation @ManyTomany entre deux classes.
C'est a dire l'employé peut avoir plusieurs missions de travail et chaque mission contient plusieurs employés.
Ceci permet de créer une table dans la BD qui s'appelle "Employees_Missions" contenant les attributs suivantes: "Num_Emp" & "Num_Mission". Cette table contient les employés qui sont affectés dans une mission.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 @Entity public class Employees implements Serializable { @ManyToMany @JoinTable ( name="Employees_Missions",joinColumns= @JoinColumn(name="Num_Emp"), inverseJoinColumns= @JoinColumn(name="Num_Mission") ) private List<Missions> missions; @JsonIgnore public List<Missions> getMissions() { return missions; } public void setMissions( List<Missions> missions) { this.missions = missions; } } @Entity public class Missions implements Serializable{ @ManyToMany(mappedBy="missions",cascade={CascadeType.ALL, CascadeType.PERSIST}) private List<Utilisateurs> employees; @JsonIgnore public List<Utilisateurs> getEmployees() { return employees; } public void setEmployees(List<Utilisateurs> employees) { this.employees = employees; } }
J'ai crée par la suite une fonction en JAX-RS pour l'ajout d'une mission:
Aprés, j'ai fais un test et j'ai constaté que tous les informations de la mission sont bien ajoutés sans problème sauf que l'affectation de l'employé dans une mission n'est pas ajouté. C'est a dire il existe aucun enregistrement dans la table " Employees_Missions" lors je crée une nouvelle mission .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 @RequestMapping(value="/AddMissions") public Missions LancerMissions(@Param(value = "idEmployes") long [] idEmployes, Missions mission){ List<Utilisateurs> users = new ArrayList<Utilisateurs>(); for (int i=0; i < idEmployes.length; i++) { Utilisateurs usr= utilisateur.getT(idEmployes[i]); users.add(usr); } mission.setEmployees(users); //pour ajouter l'employé a une mission (l'ajout se fait dans la table "Employees_Missions") return missionM.save(mission); }
Comment je peux enregistrer l'affectation d'un employés dans une mission dans ma table "Employees_Missions" ?
Merci de m'aider,
Partager