请问如何再drl文件中查询数据库

我想在一个链式结构中通过链末端结点通过规则遍历所有结点如 节点A→节点B→节点C每个箭头表示一个标识跨度,例如:每个节点都有一个告警字段。每个箭头标识告警级别加2。
#created on: 2007-12-29
package hibernateRule

#list any import classes here.
import com.yourcompany.dataModel.NodeRelationMapping;
import com.yourcompany.dataModel.Node;
import com.yourcompany.service.Service;
import java.util.List;


#declare any global variables here
global java.util.List myGlobalList;
global com.yourcompany.service.Service service;

   




rule "myRule"
	
	when
		$nodeA:Node(status=="0")
		$map:NodeRelationMapping($temp:nodeByANodeId,$alarmStep:step) from $nodeA.nodeRelationMappingsForZNodeId
	then 
		$nodeB:(getNodeById($temp.getId()));
		$nodeB.setStatus("-1");
		$nodeB.setAlarm($alarmStep.longValue()+$nodeB.getAlarm().longValue());
		#System.out.println($nodeB.getAlarm());
		$nodeA.setStatus("-1");
		myGlobalList.add($nodeA);
		update($nodeA);
		$nodeB.setStatus("0");
		insert($nodeB);

		
end


function Node getNodeById(String nodeId) {
	return service.getNodeById(nodeId);
}

我以全局变量的形式传进来一个hibernate服务类型的实例。通过该实例的getNodeById可以取得节点信息。
我再drl文件中定义了这个function。可是在使用时这个地方的service报错。
还有就是$nodeB:(getNodeById($temp.getId()));这个写法好像不合法。不知道我如何表达将临时取得的节点起一个别名,这个意思。

你可能感兴趣的:(数据结构,C++,c,Hibernate,C#)