j'ai une relation @ManyTomany entre deux classes. C'est a dire l'employé peut avoir un ou plusieurs missions de travail et chaque mission contient un ou plusieurs employés.
Voilà le code de deux classes:
@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 à la fois les attributs suivantes: "Num_Emp" & "Num_Mission". Cette table contient les employés qui sont affectés dans une mission du travail.
Pour assurer la suppression des données avec la relation @ManyToMany, j'ai ajouté la fonction ci-dessous lors de la suppression de la mission les lignes de la table "Employees_Missions" qui contient le même identifiant de la mission seront supprimés:
@PreRemove
public void removeMissionsFromUsers() {
for (Utilisateurs u : employees) {
u.getMissions().remove(this);
}
}
La suppression de la mission avec leur liste qui se trouve dans la table "Employees_Missions" fonctionne sans problème. Mais lors de la suppression, il supprime l'utilisateur de la table "Utilisateurs".Donc je cherche a ne pas supprimer l'utilisateur de la table "Utilisateurs".
Comment alors supprimer une mission et l’affectation des utilisateurs dans une mission (je parle de la table "Employees_Missions") sans supprimer l'utilisateur?
Merci de m'aider mes amis,
- Edité par syrine01 19 avril 2017 à 20:01:33
Suppression des données dans ManyToMany
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.