私はDroolsルールエンジンを試しています。私はかなり初心者です。drools:複数のルールが実行される
I単一のルール・ファイル内の代わりに、以下の規則があります。私は2つのアカウント、バランス15とのバランス15000別のものを渡していますStatefulKnowledgeSessionで
rule "A stand alone rule"
salience 2
no-loop
when
$account : Account()
Account($account.balance>100)
then
System.out.println("balance>100");
System.out.println($account.getBalance());
System.out.println($account.getCustomer().getName());
end
rule "A second Rule"
salience 1
no-loop
when
$account : Account()
Account($account.balance<100)
then
System.out.println("balance<100");
System.out.println($account.getBalance());
System.out.println($account.getCustomer().getName());
end
、
Account account=new Account(7l,15000l);
Account account1=new Account(5l,15l);
Customer customer = new Customer("Samrat", 28, "Sector51", account);
Customer customer1 = new Customer("Alexi", 28, "Sector50", account1);
account.setCustomer(customer);
account1.setCustomer(customer1);
session.insert(account);
session.insert(account1);
session.fireAllRules();
を私によると、予想される結果は、各ルールが1回だけ起動され、対応するオブジェクトが印刷されるべきであるということです。
しかし、私は取得しています結果は次のとおりです。私は、各ルールが二回実行されている理由を理解することはできませんよ
balance>100
15000
Samrat
balance>100
15000
Samrat
balance<100
15
Alexi
balance<100
15
Alexi
????
バンに!これはそれを修正! – Samrat