java中的insert函数_drools规则引擎之insert函数

insert的作用与在Java 类当中调用KieSession的insert方法效果一样,都是将Fact对象插入到当前的Working Memory当中,基本用法格式如下:

insert(new Something());

调用insert之后,规则会进行重新匹配,如果没有设置no-loop为true或lock-on-active为true的规则,如果条件满足则会重新执行。update、modify、delete都具有同样的特性,因此在使用时需特别谨慎,防止出现死循环。

规则文件insert.drl

package com.rules

import com.secbro.drools.model.Product

rule "insert-check"

salience 1

when

$p : Product(type == GOLD);

then

System.out.println("insert-check:insert Product success and it's type is " + $p.getType());

end

rule "insert-action"

salience 2

when

then

System.out.println("insert-action : To insert the Product");

Product p = new Product();

p.setType(Product.GOLD);

insert(p);

end

测试代码:

@Test

public void commonTest(){

KieServices kieServices = KieServices.get();

KieContainer kieContainer = kieServices.getKieClasspathContainer();

KieSession kieSession = kieContainer.newKieSession("ksession-rule");

int count = kieSession.fireAllRules();

kieSession.dispose();

System.out.println("Fire " + count + " rules!");

}

打印日志:

insert-action : To insert the Product

insert-check:insert Product success and it's type is GOLD

Fire 2 rules!

根据优先级首先执行insert操作的规则,然后执行结果检测。

相关技术视频

QQ技术交流2群:715840230

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值