Bonjour,
J'ai une grosse boucle de saisie de donnée et il se peut que je tombe sur des doublon (4 Mo de data).
Afin de les éviter, je teste leur présence (critteria) sur 4 clefs et ca marche. Mais voila actuellement, je traite en chaîne plusieurs de ces fichiers et je tombe sur cette exception : -{"Found two representations of same collection"}
En gros, lors des tests en série, la session garde en mémoire tous les objets qui lui ont été requeté par le critéria et donc lorsque je retombe sur un objet existant (dans un contexte différents) mais pointant sur une collection différentes il me sort cette exception.
J'ai déjà essayer de limiter la sessions un utilisant des using mais rien n'y fait.
Code :
- using (ISession temporarySession = m_sessions.OpenSession())
|
J'ai déjà essayé les flush et les clear.
Lorsque je coupe le traitement en autant de lots que de fichiers, l'exception n'apparais pas.
Code :
- //Is the composition already saved ?
- ICriteria l_criteria = a_hibernator.CreateCriteria(typeof (QIdxComposition));
- l_criteria.Add(new EqExpression("ReleaseDate", l_composition.ReleaseDate));
- l_criteria.Add(new EqExpression("ReleaseType", l_composition.ReleaseType));
- l_criteria.Add(new EqExpression("RevisionNumber", l_composition.RevisionNumber));
- l_criteria.Add(new EqExpression("Index.Ticker", m_HI.m_indexTicker));
- l_alreadyInDB = l_criteria.List().Count != 0;
|
Que faire?