2016-04-22 9 views
0

メインマップオブジェクトに別のマップが含まれています。今私はそれをそこから得る必要がありますか? 私のコードは、私はDroolsのセッションにこの「studentsMap」オブジェクトを挿入して、ルールを発射していますドローの地図内の地図から値を取得する方法

HashMap<String,Object> studentsMap = new HashMap<String,Object>(); 
HashMap<String,int> marksMap = new HashMap<String,int>(); 
marksMap.put("Maths",98); 
marksMap.put("Chemistry",96); 
studentsMap.put("JohnDoe", marksMap); 

のように見えます。 droolsのマーク値を比較する方法(マークが90より大きい場合の条件の確認方法)?

答えて

0

私はあなたのファクト名が学生であると仮定しています私はこれをまだ試していないが、このようなものが rule "studentsMap"
when
entry : Entry() from $studentsMap.entrySet()
marksMap : Map() from entry.getValue() markEntry : Entry() from marksMap.entrySet() mark : Number() from markEntry.getValue()
mark > 90 then
System.out.println("mark greater than 90");
end

0

を行うことができますすることができます。 ルールは次のようになります。

rule "studentsMap" 

when 
    Student($markMap : markMaap) 
    eval($markMap["Maths"] > 90) 
then 

System.out.println("mark greater than 90"); 

end