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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
bDao.deleteAll(bDao.findFor(a, date1, date2));
et puis pour ajouter les autres b, j'ai fait (en gros) :
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);
Problème, quand je merge mon a, les b sont cascadés, alors qu'ils ont été supprimés, j'obtiens donc des exceptions.

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.