Drools遍历复杂对象时提前结束

总共有3个科室,每个科室下有5个诊室,每个诊室下有10个医生,但是输出的结果却是医生只会工作两天,所以不知道问题出在哪了,而且更改了workdDay属性的值也无果,不知道是不是迭代出现了问题

        ![医生正常工作Drools](https://img-ask.csdn.net/upload/201810/23/1540263171_128068.png)
            ![医生正常休息Drools](https://img-ask.csdn.net/upload/201810/23/1540263213_297485.png)
            ![科室实体](https://img-ask.csdn.net/upload/201810/23/1540263276_934912.png)
            ![医生实体](https://img-ask.csdn.net/upload/201810/23/1540263292_950502.png)
            ![诊室实体](https://img-ask.csdn.net/upload/201810/23/1540263305_645783.png)
            ![这是输出结果,其中 false代表休息,true代表上班](https://img-ask.csdn.net/upload/201810/23/1540263478_685129.png)
0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
drools 嵌套对象的处理
要把属性变成集合,然后通过from 进行 然后通过from获取param的对象,进行param的属性进行校验 调用的时候,传入集合
规则引擎处理复杂对象论坛1
规则引擎处理复杂对象论坛1.docx CSDN论坛总结
Drools规则引擎使用小结(一):传入多个List对象
考虑如下情形:实现根据航班信息schedule(主要是行李数量)自动生成行李运输任务mission(规则简化为每180件行李算作一个行李运输任务),并把生成的任务分配给空闲的司机driver运输(规则简化为比较空闲司机和任务数量进行分配)。 考虑实现:传入未分配行李运输任务的航班对象集合schedules,空闲司机对象集合drivers,空的行李运输任务对象集合missionlist(也就是三个...
drools-对象归类操作
分类     前面总结过了,drools规则文件的when中的操作和计算大致分为三种 顶层逻辑组合 对象筛选条件 顺便信息提取 顶层逻辑目前总结了四种 and or not exists 基本的对象筛选,仅仅是简单的属性过滤 Person(name == "godme") Person(age > 100) Person(name == "godme" , age &g...
drools 7.x-复杂事件处理入门
1.什么是drools fusion 它是drools用来进行事件处理的一个模块,做CEP系统,CEP(Complex Event Processing)是"复杂事件处理"的缩写,那cep到底又是什么,可以简单的理解为流式数据处理,每条数据看做一个事件,这些事件有时间上的顺序性。 2.规则 1.首先需要注意的是,用fusion,要把插入drools的数据声明为事件,drools处理数据有两种方式,...
drools-对象筛选扩展
类型判断 // int age // 查询时条件不分类型,一般直接匹配到自动识别 Person(name=="godme",age==88) // 类型不对会尝试强制转换,转换成功后继续操作 Person(name=="godme",age=="88") // 类型强转失败,直接报错 Person(name=="godme",age...
Drools7 中Map类型数据源操作
本文介绍了Map类的数据源在drools的condition部分遍历的方法。 1.entity public class SimpleEntity { private Integer id; private Date date; public Integer getId() { return id; } public void setId(Integer id) { t...
7、Drools内部功能详细介绍
Fact对象Fact是指在Drools规则应用当中,将一个普通的JavaBean插入到规则的WorkingMemory当中后的对象。规则可以对Fact对象进行任意的读写操作,当一个JavaBean插入到WorkingMemory当中变成Fact之后,Fact对象不是对原来的JavaBean对象进行Clon(克隆),而是原来JavaBean对象的引用。规则在进行计算的时候需要用到应用系统当中的数据,...
Drools-复杂事件处理
drools复杂事件处理,详细说明文档。一些语法的详细解析
drools-数据提取和属性筛选
bean package com.sample; public class Person { private String name; private int age; private Gender gender; public String getName() { return name; } public void setName(String name) { thi...
Drools 本人的使用实例
org.drools drools-core 5.5.0.Final org.drools drools-compiler 5.5.0.Final package com.sprucetec.tms.fee.service.impl.rule; import com.alibaba.dubbo.common.utils.Collec
drools-对象增删改查
容器     这东西现在也大致有个了解了,不讲究细节,大致来看也就是     规则  + 数据     好比算法 + 数据  = 程序,抛去执行流程,规则也就是固定的算法,所以     drools = rule + fact     如果说程序要有一个运行环境,那么,drools也需要有一个环境来执行这个操作     这个容器(环境)中,有rule和fact          从代码执行顺序,...
帮助网友解决一个drools的问题
      看到网友提的一个问题:    http://drools.group.iteye.com/group/topic/39063         鄙人刚刚开始研究Drools,但看了些例子,仍然不知道怎么处理下面的业务:  超市打折促销,某种商品(按照类别code)促销规则:    1.在指定日期区间内(比如1月1日-1月3日),    2.买第1件按原价,第2件则价格打6折。第...
11、Drools查询及对象的使用
全局变量的使用:在规则中,全局变量是定义在package之后的任何一个地方,但我们为了方便 管理统一的放到package下面global 变量类型 变量名;  其实与java中定义是一样的,只是关键字不同;session.setGlobal("变量名", 变量值); 这里通过java代码来给全局变量赋值的,也可以在规则中给变量赋值。这样的赋值与map是一样的,因为是全局的变量,在其他地方有改动的话...
《Drools7.0.0.Final规则引擎教程》番外实例篇——相同对象and List使用
前奏群组(QQ:593177274)交流中有朋友提出一个问题,怎么实现两个相同对象的插入和比较?相信很多朋友也遇到类似的问题,于是抽时间为大家写一段实例代码,后续代码会同步到GitHub中。下面简单介绍一下实现实例:场景向session中insert两个相同的对象,但对象的参数值有不同的地方,同时要求对两个FACT对象的属性进行判断,当同时满足(&&)时,通过规则校验,进行后续业务处理。下面,通过两
《Drools 7 规则引擎教程》番外篇-规则条件匹配机制
问题场景QQ技术群(593177274)中有同学遇到这一个问题场景:在多条规则(比如3条)的when中使用了一个相同的静态方法,并在静态方法中打印相关的日志信息。同时,使用了AgendaFilter对规则进行了过滤。也就是说只包含部分规则(比如匹配一条规则的名字)的使用。在这种场景下,匹配到的那条规则会正常触发,这个毫无疑问,但执行规则引擎之后会有一个附加情况,那就是使用同一静态方法的三条规则都调用
java序列化时如何遍历复杂对象嵌套的所有对象
先说开发环境,我们是OSGI环境,使用的是struts2自带的OSGI插件的环境(当然了,我们对该插件做了升级,Struts2自带的插件支持felix版本比较低)。在解决项目问题时需要对系统中的一些对象进行序列化和反序列化,而要序列化的对象是放在OSGI环境中的bundle中,但是我们的序列化工具因为某种原因必须放在war包的lib下,而ObjectInputStream类在反序列化的时候不但需要
《Drools7.0.0.Final规则引擎教程》番外实例篇——FactHandler使用案例
背景我们在使用以太坊相关的json-rpc借口发送交易时,往往会出现这种现象:交易已经发送出去,也获得了交易的hash值。dev模式的geth也在正常挖矿,可是问题是交易却迟迟未被确认。会发生此种类型的接口如:eth_sendTransaction eth_sendRawTransaction那么是什么原因导致此问题呢?今天就带大家了解一些导致此问题的原因。问题追踪除了上面的表象问题,我们还可以进步
drools规则语法(一)
1、基本的匹配规则 1.1变量 drools使用匹配的方式对Fact进行比对, 比如 MVEL代码   account : Account(balance > 100)    这个规则的含义就是在Fact中找到类型为Account,且balance属性值大于100的所有Account实例。 可以指定变量来描述一个类型或者一个映射一个类的属性, 比如 ...
drools-规则属性
结构 package com.godme.rules; // package import com.godme.Person; // import global Person person; // global function func(){} // function query // query rule "ruleNa...
网友使用过程中的一个drools的复杂问题
鄙人刚刚开始研究Drools,但看了些例子,仍然不知道怎么处理下面的业务:  超市打折促销,某种商品(按照类别code)促销规则:     1.在指定日期区间内(比如1月1日-1月3日),     2.买第1件按原价,第2件则价格打6折。第3件原价,第4件打6折... ...  现在顾客推着购物车来消费,里面有很多种商品,其中上面促销的那种有5件,结果应该是3件原价,两件要打折。
《Drools7.0.0.Final规则引擎教程》番外实例篇——Map使用案例
背景技术交流群中,不少朋友在问,如何在Drools规则文件中使用Map。今天就用实例带大家了解一下map的使用方法。实例代码测试部分代码:@Test public void testMapUsage() { KieSession kieSession = this.getKieSession("map-group"); Map<String, Person> m
drools -规则语法
文章结构1. 基础api2. FACT对象3. 规则4. 函数1. 基础api在 Drools 当中,规则的编译与运行要通过Drools 提供的各种API 来实现,这些API 总体来讲可以分为三类:规则编译、规则收集和规则的执行。完成这些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowled
3、Drools应用实例
Drools 实例介绍Drools编译与运行:在Drools当中,规则的编译与运行要通过Drools提供的各种API来实现,这些API总体来讲可以分为三类:规则编译、规则收集和规则的执行。Kmodule.xml的编写kmodule.xml文件放到  src/main/resources/META-INF/文件夹下代码的实现(具体内容) &amp;lt;?xml version=&quot;1.0&quot; encoding...
drools-属性筛选
条件连接 默认连接 // 逗号分隔,相当于并列条件,必须同时满足 Person(name == &quot;godme&quot;, age &amp;gt; 18) 手动关联 // 对象真值用and, or;属性关联用 &amp;amp;&amp;amp;, || ; // 其实都可以,但是推荐区分使用,划分明了 Person((name == &quot;godme&quot; &amp;amp;&amp;amp; age &amp;gt; 25) || gender...
Drools推理引擎
图片无法显示可参考链接: http://note.youdao.com/share/?id=6f8e6c9ee12db3f9a02997eef9b056ed&type=note#/1.Drools简介 很多系统的业务规则需要经常修改,如果将这些规则直接编写到代码中,则业务规则一旦改变就需要修改代码,重新编译打包整个代码,而且业务规则也越来越复杂,且经常需要实时进行修改,故可将这些可变的业务规则抽
利用递归遍历获取Java复杂对象(对象的属性仍是对象//list/map)中指定属性的值(一)
本示例中又三个对象嵌套: UserBO:复杂对象,其中一个属性是List&amp;lt;AddressBO&amp;gt;或者Map&amp;lt;AddressBO&amp;gt; AddressBO:其中一个属性是SubAddressBO SubAddressBO:包含目标属性addrId,且是string类型,查找addrId的值 任务:UserBO是一个复杂对象,该对象中肯定存在目标属性addrId(String...
Drools7.5.0教程(11)-drools决策表的使用
Drools7.4.1教程(11)-drools决策表的使用 drools,是由JBOSS公司开源的一套基于JAVA的规则引擎系统 什么情况下使用决策表条件类似,可以穷举出各类情况,条件比较单一,可以一行表格内将规则描述清楚的情况下,可以采用决策表来制定规则。怎么使用?老的示例,一个需求,60以下不及格,60-70及格 70-90 良好 90-100 优秀 100满分,这个规则就能够满足决策表的
利用递归遍历获取复杂对象中所有目标属性的值(三)
关于遍历复杂对象中目标属性的值的文章,这是我写的第三篇,也是目前为止我能想到的遍历效率最高的一篇,再前两篇基础上做了相关完善和优化,主要是思路改变了。 具体实现思路:在复杂对象的目标属性上增加自定义注解,目标属性所属类也可能是某个bo的属性,则在这个属性上增加另一个自定义注解,然后利用递归遍历。 闲话少说,直接上代码 一、两个自定义注解 ...
《Drools7.0.0.Final规则引擎教程》第5章 session使用说明
KieSession是用来与规则引擎进行交互的会话。在Drools 7当中分有状态的session和无状态的session:KieSession和StatelessKieSession。有状态session通过KieContainer可以获取KieSession,在kmodule.xml配置文件中如果不指定ksession的type默认也是有状态的session。有状态session的特性是,我们可
Drools动态规则
动态规则,是做规则引擎最想知道的问题,小编也加过一些群,大部分的人都喜欢问这样的问题。规则只能写在文件里嘛规则引擎能做什么规则可动态配置嘛在项目中使用规则引擎,业务人员怎么用呢?规则变化了怎样才能不重启项目就能用呢......总是一脸懵逼的在研究着...小编今天就给大家分析说明一下:首先规则可以写法有很多,像规则决策表就是写在Excel中的,规则文件,重点是还可以以字符串的方式编写,聪明的读者是不...
复杂事件处理技术调研
文章目录1. 什么是复杂事件处理2.复杂事件处理引擎2.1 Esper入门 1. 什么是复杂事件处理 https://blog.csdn.net/zhangzhengming/article/details/5708908 2.复杂事件处理引擎 2.1 Esper入门 ...
递归遍历获取复杂对象中所有目标属性的值(二)
       在利用递归遍历获取Java复杂对象(对象的属性仍是对象//list/map)中指定属性的值(一)中我写了递归遍历复杂对象中目标属性,找到第一个目标属性则退出遍历。现在有遇到要遍历复杂对象中所有目标属性的值。且指定了属性所在类的类名、属性类型、属性名(当然也可以不指定这些,因为我是业务需要)。另外例子对属性为List或者Map的属性的遍历做了一定改动。 现在贴代码如下(如果各位同仁发...
drools规则语法-API与FACT(三)
在 Drools 当中,规则的编译与运行要通过Drools 提供的各种API 来实现,这些API 总体来讲可以分为三类:规则编译、规则收集和规则的执行。完成这些工作的API 主要有KnowledgeBuilder、KnowledgeBase、StatefulKnowledgeSession、StatelessKnowledgeSession、、等,它们起到了对规则文件进行收集、编译、查错、插入fa
10、Drools属性部分
规则属性是用来控制规则执行的重要工具,在前面举出的关于规则的例子当中,已经接触了如控制规则执行优先级的 salience,和是否允许规则执行一次的 no-loop。在目前 的 Drools5 当中,规则的属性共有 13 个,它们分别是:activation-group、agenda-group、 auto-focus、date-effective、date-expires、dialect、dura...
Drools7规则引擎Map使用
service代码: @Service public class DroolsService { public String fireRule() { KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); ...
25、研究drools时遇到的错误及解决方法
生成POJO类时,如果要生成构造函数的话,在有参或者无参构造函数中一定要写否则在drl中写就会报下面这种错误。2、编写非spring 注入的原始配置文件时 要注意3、在具体的实现类中,如果keisession 的值与配置文件中的ksession标签的name 值不一样。 会报如下错误编写时要注意4、通过maven 整合drools+spring时 要注意:是否有规则引擎文件 如果没有 就加上。。 ...
Drools6规则引擎探究与在业务中的实践
在公司接触到Drools,感觉可以为自己手头的工作所用,便开始着手Drools6规则引擎的研究之中,采用最新的6.3版本,网上最新的额资源比较少,还要看不少英文介绍,前后忙了大概小半年,觉得有必要总结一下。 对于一些充斥着大量的if-else逻辑的后天逻辑代码,其业务会随着逻辑规则复杂度越来越高,代码可读性和维护性越来越差,而且随着产品设计的定制化需求提升,发布新的理赔规则便需要重启整个业务线,为了解决这个问题,引入Drools6规则引擎技术,不仅可通过DRL文件等方式大大简化逻辑语句,更可通过Drool
drools入门(二)-----规则引擎Drools解决汽水问题
喝汽水问题:1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有50元钱,最多可以喝到几瓶汽水?(不能借空瓶,呵呵无商不奸)   answer:1: 如果有超过一元钱, 则买一瓶汽水喝, 此时: 钱减少一元,同时拥有的空瓶增加一个。2: 如果拥有至少两个空瓶, 则两个空瓶卖给老板兜里的钱加一(或是两个空瓶卖给老板换来一瓶汽水)。 SoftDrink.drl #created on: 2011...
drools内存泄露问题排查分析
[b]一、现象[/b] 某系统使用了drools规则引擎对用户数据按照规则进行计算,在对其某查询接口连续100W次调用过程中发现JVM内存可用量持续下降,从系统启动时的1.5G下降为20-30M,导致java.lang.OutOfMemoryError: Java heap space只能被迫重启系统。 [b]二、排查[/b] 根据问题现象初步判定为系统出现内...