2017-07-17 2 views
1

J'essaie d'insérer une liste comme un fait dans kieSession.what est la différence entre les deux méthodes ci-dessous ?.Insérer une liste comme un fait dans statelessKieSession dans les baves

Method1:

StatelessKieSession kieSession1 = kieBase.newStatelessKieSession(); 
      kieSession1.execute(List); 

Method2:

StatefulKnowledgeSession kieSession = (StatefulKnowledgeSession) kieBase.newKieSession(); 
kieSession.insert(List); 
      kieSession.fireAllRules(); 

Je suis en mesure de parcourir la liste qui est envoyée en tant que paramètre dans la DRL à la session stateful, mais je ne suis pas en mesure de le faire en session sans état. Quelqu'un peut-il dire comment les deux sessions traitent la liste passée comme un fait?

+0

Avez-vous lu les javadocs de 'execute (Iterable x)' et 'insert (Object y)'? – laune

+0

Oui .. execute insère tous les objets individuellement puis appelle fireAllRules. Mais je veux utiliser la liste dans le drl et itérer les objets dans le drl .. Comment puis-je le faire avec une session sans état? –

Répondre

0
StatelessKieSession kieSession1 = kieBase.newStatelessKieSession(); 
kieSession1.execute((Object)aList); 

Drools __gVirt_NP_NNS_NNPS<__ documents Javadoc API les deux formes surchargées de execute et explique ce qui se passe avec une ou l'autre forme.