Comment ajouter les données de la relation @ManyTomany dans la table?
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.
Code:
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;
}
} |
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.
J'ai crée par la suite une fonction en JAX-RS pour l'ajout d'une mission:
Code:
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);
} |
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 .
Comment je peux enregistrer l'affectation d'un employés dans une mission dans ma table "Employees_Missions" ?
Merci de m'aider,