Le 17/06/2010 22:59, Sigrid.Lehuta@ifremer.fr a écrit :
Salut, Salut, j ai le message d erreur ci-dessous dans ma regle de gestion.
alors le premier soucis j ai pas d idee : can't convert object in matrix Proportion from String: 'org.nuiton.topia.persistence.TopiaEntity(fr.ifremer.isisfish.entities.Metier#1218467347207#0.08063565015493301)' vous savez ce que c est ??? C'est un message "warning" qu'on a laissé plutôt pour nous, il ne devrait pas te poser de problème.
pour le second est ce que je manipule mal les "collections" ? failed to lazily initialize a collection of role: fr.ifremer.isisfish.entities.SpeciesImpl.population, no session or session was closed Collection <Population> pops = sp.getSpecies().getPopulation();
ERROR|22:28:53,906|LazyInitializationException.java|42|<init>|failed to lazily initialize a collection of role: fr.ifremer.isisfish.entities.SpeciesImpl.population, no session or session was closed org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: fr.ifremer.isisfish.entities.SpeciesImpl.population, no session or session was closed at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:380) at org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.java:372) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:365) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108) at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:272) at rules.MPARuleBRUM_conditionnel_MultiSp.aw$original$_AW_$preAction$_AW_$rules_MPARuleBRUM_conditionnel_MultiSp(MPARuleBRUM_conditionnel_MultiSp.java:502) En effet, ce problème est assez compliqué a percevoir.
Pour les règles, les modifications que tu fais sont isolées pour le pas de temps courant par un système de transaction. A la fin du pas de temps, toutes les modification faites sur la base de données par les règles sont annulées. L'effet désagréable de la chose vient du fait que les objets qui proviennent de la base de données ne peuvent être manipulé que s'il appartiennent à la transaction en cours. Dans ton cas, le problème est que dans l'init() tu remplit une map "mesStrategies = new HashMap<String, Strategy>();" avec des objets de la base de données. Et tu y accède dans la pré-action, alors que ce qu'il y a dans cette map est lié à l'init() et non à la transaction du pas de temps actuel :( Le problème est déjà assez difficile à comprendre, il te faudra peut-être du renfort sur ce problème :) -- Éric <chatellier@codelutin.com> Tel: 02 40 50 29 28 http://www.codelutin.com