Merci beaucoup de ta réponse rapide.
En effet, Benjamin m'avait deja expliqué ce probleme de ne pas modifier des objets de la base... mais je suis pas trop à l'aise avec, je dois avoir un code correct quelque part sinon je te redemande.
Merci !


Eric Chatellier a écrit :
 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 :)

  

-- 
Sigrid LEHUTA
  ~ ><> ~
  
Doctorante
Département Ecologie et Modèles pour l'Halieutique
IFREMER, rue de l'ile d'Yeu BP 21105 
44311 Nantes Cedex 03
Tél : +33 (0)2 40 37 41 23 (interne : 8123)