Bonjour,
J'ai une entity qui contient une liste d'une autre entity
Est-il possible que quand j'enlève une élément EmployePer de la liste (employe.removeEmployePer(periode)) et que je fait ensuite un merge du bean Employe, un delete soit fait sur la table EmployePer pour supprimer l'élément supprimé de la liste ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @Entity @Table(name = "dbo.EMP_EMPLOYE") public class Employe extends BusinessEntite { @OneToMany(mappedBy = "employe", fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REMOVE}) private List<EmployePer> employePerList; }
Actuellement je fais comme le code qui suit mais je me demandais s'il n'y avait pas possibilité d'automatiser et ainsi enlever la requete m_employePerDao.deleteEmployePer(periode); pour qu'elle se fasse toute seule (JPA détecte que la liste a changé et delete automatiquement l'objet supprimé de la liste) ?
Car dans la cas contraire, si j'ajoute un élément dans la liste, un insert dans EmployePer est fait automatiquement, sans que j'ai quoique ce soit à faire....
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 @Override public void updateEmploye(Employe employe) { List<EmployePer> lstEmpPer = new ArrayList<>(employe.getEmployePerList()); for (EmployePer periode : lstEmpPer) { if (periode.isDeleted()) { if (periode.getId() > 0) { m_employePerDao.deleteEmployePer(periode); } employe.removeEmployePer(periode); } } m_employeDao.updateEmploye(employe); }
Partager