Bonjour,
J'ai une entité A qui a une relation oneToMany vers une collection d'entité B.
Je dois supprimer tous les B de A entre deux dates (donc pas forcément tous les B de A) et ensuite ajouter d'autres B dans A.
Pour supprimer, j'ai fait :
et puis pour ajouter les autres b, j'ai fait (en gros) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part bDao.deleteAll(bDao.findFor(a, date1, date2));
Problème, quand je merge mon a, les b sont cascadés, alors qu'ils ont été supprimés, j'obtiens donc des exceptions.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 for (B b: listedeB) { b.attache(a); a.ajoute(b); } aDao.merge(a);
Je ne peux pas retirer la cascade Merge, je m'en sers.
Je ne me sens pas de charger tous les B de a puis de faire un delete sur chaque entre les deux dates, il y en a potentiellement un sacré paquet.
Du coup, je suis un peu embeté.
Une idée quelqu'un ?
Est ce que je peux ajouter les b sans faire un merge sur le a ? Genre bDao.addAll(blist); ? Est ce que ça risque pas de faire le merge sur le a en fin de session de toute façon ?
Merci d'avance.
Partager