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

我想在一个链式结构中通过链末端结点通过规则遍历所有结点如 节点A→节点B→节点C每个箭头表示一个标识跨度,例如:每个节点都有一个告警字段。每个箭头标识告警级别加2。
[code]#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);
}[/code]
我以全局变量的形式传进来一个hibernate服务类型的实例。通过该实例的getNodeById可以取得节点信息。
我再drl文件中定义了这个function。可是在使用时这个地方的service报错。
还有就是$nodeB:(getNodeById($temp.getId()));这个写法好像不合法。不知道我如何表达将临时取得的节点起一个别名,这个意思。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值