okay, the dynamic drools property thing turns out not so wonderful. Say if an 
entity has 10 fields whose setter are plugged a property change listener, the 
propertyChangeListener will cause 10 evaluations in the Rete network, while if 
batch update -- to be concrete:

  | ...
  | StatefulSession ss = myRuleBase.newStatefulSession();
  | 
  | ss.setGlobal("myManager", myManager),
  | ...
  | FactHandle fh1 = ss.insert(myEntity1);
  | FactHandle fh2 = ss.insert(myEntity2);
  | ..
  | 
  | // here you modify your entities wildly,  
  | // for example modify all 10+ or 20+ fields 
  | 
  | entityManager.flush();
  | ss.update(fh1, myEntity1);
  | ss.update(fh2, myEntity2);
  | ...
  | 
  | ss.fireAllRules();
  | 

only cause one evaluation to each entity in the Rete network. So this approach 
is much more recommended. StatefulSession's (rule session, please do not 
confuse with hibernate session) update(fh, obj) is much like entityManager's 
flush().

Maybe it is a good idea to tie entityManager's flush together with stateful 
rule session's update together.....

I was using the propertychangelistener approach because I happened to have 2 
entities who both have only one field needing to be monitored in the stateful 
rule session. Sorry for the confusion/mislead. And big thanks to Mark Proctor 
for clarifying this issue to me. 


Regards,
Ellen

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4064685#4064685

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4064685
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to