Drools:如何比较drools中两个不同对象的属性?

时间:2016-12-28 15:50:15

标签: drools drools-guvnor drools-planner drools-fusion drools-flow

我正在使用drools进行业务级别验证。 是否可以在工作内存中加载两个对象并比较它们的值? 假设我有两个对象:

Object1{
String name;
}

Object2{
String sname;
}

我可以在drl文件中比较名称(Object1)和sname(Object2)吗?

Object1(name)==Object(name)

我尝试在drl文件中添加此行,但它出现错误“Unexpected token name”

还帮我将这些对象插入工作内存中。我正在使用以下步骤获得kie会话

KieContainer container=KieServices.Factory.get().getKieClasspathContainer();

KieSession kieSession = container.newKieSession("SampleSession");

现在可以同时使用insert方法插入object1和Object2吗?

kieSession.insert(object);

1 个答案:

答案 0 :(得分:0)

如何插入对象:

Object1 o1 = ...;
Object2 o2 = ...; 
kieSession.insert( o1 );
kieSession.insert( o2 );

如何比较他们的属性:

rule namecomp
when
    Object1( $n1: name )
    Object2( sname == $n1 )
then
    System.out.println( "Names are equal" );
end

这些是基本问题。请务必阅读Drools文档。