Supprimer en base les objets supprimés dans une ArrayList
Bonjour,
J'ai une entity qui contient une liste d'une autre entity
Code:
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;
} |
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 ?
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....
Code:
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);
} |
Merci pour votre aide