我有两个对象列表
A。设置:{字符串命令,字符串设置}
B。建议:{字符串命令:推荐字符串设置,字符串:风险}
使用流口水,我想检查是否有任何设置对象与命令相等但建议设置不等于建议,但设置!= RecommendationSetting。
我使用B的全局列表来工作,其中将A对象作为事实添加,并且触发了所有规则。
我还可以将两个列表作为事实输入并进行嵌套循环,但这似乎不是正确的方法。
import com.demo.drools.model.Setting;
import com.demo.drools.model.Recommendation;
import java.util.List;
global List<Recommendation> recommendations;
global List<Recommendation> suggestedRecommendations;
dialect "mvel"
rule "Check Setting For Recommendation"
when
$recommendation : Recommendation() from recommendations;
$setting: Setting(parameter == $recommendation.parameter && setting != $recommendation.setting)
then
suggestedRecommendations.add($recommendation);
end
我希望就这是否是最佳实践/最有效方法提供一些指导。
答案 0 :(得分:0)
如果您可以避免将列表作为事实,而只需将其元素插入会话中,那么我建议您离开Drools为您创建循环:
datetime.time
希望有帮助,