获取满足条件的最新事件
Getting the latest event satisfying a condition
有什么方法可以获取满足某个谓词的最新事件吗?
例如,如果我写这个规则:
rule 1:
when
myObject: MyObject(id == "id1" && name == "name1" && type == "type1")
then
myObject.doSomething();
我希望仅当最近插入的 ID 为 "id1"
的 MyObject
对象具有给定的名称和类型时才触发规则。
请注意,一次可能有多个 MyObject
具有此 ID。
本质上,我想做这样的事情:
rule 1:
when
myObject: (Get the latest MyObject with its id == "id1") and
( myObject.name == "name1" && myObject.type == "type1") )
then
myObject.doSomething();
我正在使用 Drools 6.2.0。
假设您确实有活动,这需要
declare MyObject
@role( event )
end
你可以写这个规则:
rule "latest id1-name1-type1"
when
myObj: MyObject( id == "id1", name == "name1", type == "type1" )
not MyObject( this after myObj, id == "id1" )
then
myObj.doSomething();
end
有什么方法可以获取满足某个谓词的最新事件吗?
例如,如果我写这个规则:
rule 1:
when
myObject: MyObject(id == "id1" && name == "name1" && type == "type1")
then
myObject.doSomething();
我希望仅当最近插入的 ID 为 "id1"
的 MyObject
对象具有给定的名称和类型时才触发规则。
请注意,一次可能有多个 MyObject
具有此 ID。
本质上,我想做这样的事情:
rule 1:
when
myObject: (Get the latest MyObject with its id == "id1") and
( myObject.name == "name1" && myObject.type == "type1") )
then
myObject.doSomething();
我正在使用 Drools 6.2.0。
假设您确实有活动,这需要
declare MyObject
@role( event )
end
你可以写这个规则:
rule "latest id1-name1-type1"
when
myObj: MyObject( id == "id1", name == "name1", type == "type1" )
not MyObject( this after myObj, id == "id1" )
then
myObj.doSomething();
end