我是流口水的新手,请帮助我理解如果我在调用触发所有规则后更新对象,它会像在流口水文件中那样触发规则吗?
喜欢
rule "Hello World"
no-loop true
when
message:Message (type=='Hello')
then
modify(message){
setType("Hi")//Fires other rule below
}
message.setMsgtext("Msg: Hello World, Drools");
System.out.println("Hello World, Drools!");
end
rule "Hi World"
when
message:Message (type=='Hi')
then
modify(message){
setType("Hello")
}
System.out.println("Hi World, Drools!");
end
而在 JAVA 代码中,
Message msg = new Message();
msg.setType("Hello");
//sessionObject = rbase.newStatefulSession();
sessionObject.insert(msg);
sessionobject.fireAllrules();
msg.setType("Hi"); //Here can it fire the rule? for me its not doing it
如果它没有触发,Drool 引擎是否将 msg 保留为与 Java 运行时对象完全不同的会话对象,因此它不受影响。如果不是背后的概念,请帮助我理解
谢谢查克里