当前位置: 首页 > 知识库问答 >
问题:

用java生成drools drl文件

孟成化
2023-03-14
rule "Demo_testing"
when
    $employee : EmployeeModel( department contains "Accounts" )
then
//

我在这里找到了drools编译器中可用的描述符列表,但我不知道需要使用哪个描述符以及如何定义。?

请任何人帮助我重新爱上这一个。提前谢了。

PatternDescr employeePatternDescr=new PatternDescr();
employeePatternDescr.setIdentifier("$employee");
employeePatternDescr.setObjectType("EmployeeModel");
RelationalExprDescr relationalExprDescr = null;
constraintDescr.setExpression("department");
ExprConstraintDescr constraintDescr2=new ExprConstraintDescr();
constraintDescr2.setExpression("Accounts" );
relationalExprDescr = new RelationalExprDescr("contains" ,false, null, constraintDescr, constraintDescr2);
employeePatternDescr.addConstraint(relationalExprDescr);
andDescr.addDescr(employeePatternDescr);
ruleDescr.setLhs(andDescr);

共有1个答案

邵飞白
2023-03-14

嗨,谢谢你的建议,最后我用FromDescr做了。

根据我的要求,我可以使用下面的java代码来genrate规则drl文件。

PatternDescr employeePatternDescr=new PatternDescr();
employeePatternDescr.setIdentifier("$employee");
employeePatternDescr.setObjectType("EmployeeModel");
**FromDescr fromDescr = new FromDescr();
fromDescr.setDataSource( new MVELExprDescr( "$employeeList") );
employeePatternDescr.setSource(fromDescr);**
RelationalExprDescr relationalExprDescr = null;
constraintDescr.setExpression("department");
ExprConstraintDescr constraintDescr2=new ExprConstraintDescr();
constraintDescr2.setExpression("Accounts" );
relationalExprDescr = new RelationalExprDescr("contains" ,false, null, 
constraintDescr, constraintDescr2);
employeePatternDescr.addConstraint(relationalExprDescr);
andDescr.addDescr(employeePatternDescr);
ruleDescr.setLhs(andDescr);

此代码生成的规则如下所示

rule "Demo_testing"
when
    $employee : EmployeeModel( department contains "Accounts" ) from $employeeList
then
System.out.println("Rule executed");
 类似资料:
  • 我在纠结用Java生成JasperReport。不考虑数据源,因此所有值都为null,并且不显示子报表。 我从下面粘贴的JSON中创建了带有选项“填充报告时使用报告JSON表达式”的JSONData适配器。从Jasper Studio编译它时,它正在正确创建报告,而尝试从Java编译它会导致空报告(仅显示字段名),根本没有子报告。请帮助解决此问题。 main.jrxml subreport.jrx

  • 我试图为符合Java Card 2.2.1平台的智能卡生成以下程序的CAP文件: 因此,我将其保存在名为的文件中,然后将其编译为文件,如下所示: 问题1:这个警告是为了什么? 之后,我尝试将这个文件转换为其形式: 为什么转换器要寻找这个路径?我指定目录作为类目录,但它将我指定的路径与我的程序包名连接起来!为什么? Q3:当我们使用Winrar打开文件时,我们可以在header.cap和Applet

  • 问题内容: 我有一个巨大的QuickBooks SDK .XSD模式文件,该文件定义了我可以从QuickBooks发送/接收的XML请求/响应。 我希望能够轻松地从这些.XSD文件生成Java类,然后将其用于将XML编组为Java对象,以及将Java对象编组为XML。 是否有捷径可寻…? 理想情况下,它在运行时不需要基本Java发行版外部的任何库。但是我很灵活 问题答案: JAXB确实可以满足您的

  • 问题内容: 我想制作一个Java swing应用程序,从中我可以生成保存相同数据的xml文件,并且生成的文件数将由用户决定。我的xml文件包含xml模式,而我的xml文件结构看起来像这样 如果有人提供一些代码片段帮助,我是Java新手,它将对我有更大的帮助。 我想生成保存示例XML中给出的xml模式的xml文件。 问题答案: 在Java中,您使用JAXP处理XML。您使用与DOM相关的类来生成xm

  • 使用 Hexo 生成静态文件快速而且简单。 $ hexo generate 监视文件变动 Hexo 能够监视文件变动并立即重新生成静态文件,在生成时会比对文件的 SHA1 checksum,只有变动的文件才会写入。 $ hexo generate --watch 完成后部署 您可执行下列的其中一个命令,让 Hexo 在生成完毕后自动部署网站,两个命令的作用是相同的。 $ hexo generate