患者モデル jar を guvnor にアップロードしました。クラスには名前と結果フィールドがあります。
名前に特定の値がある場合は常に結果を「合格」として挿入するルールをguvnorで作成しました。ルールのコードは次のとおりです。
rule "IsJohn"
dialect "mvel"
when
Patient( name == "John")
then
Patient fact0 = new Patient();
fact0.setResultString( "Pass" );
fact0.setName( "Patient: John" );
insert( fact0 );
end
以下は、このルールを呼び出す Java コードです。
KnowledgeBase knowledgeBase = readKnowledgeBase();
StatefulKnowledgeSession session = knowledgeBase.newStatefulKnowledgeSession();
Patient patient = new Patient();
patient.setName("John");
System.out.println("patient.name "+patient.getName());
session.insert(patient);
session.fireAllRules();
System.out.println("************patient.name "+patient.getName());
System.out.println("patient result string is "+patient.getResultString());
しかし、このコードを実行すると、同じ名前と結果の文字列が null として取得されます。それで、私はここでどんな間違いをしていますか。
基本的に、単純なルールを呼び出して、Java を使用して結果を表示する方法が必要なだけです。それを示す例はありますか。