Drools 说订单和产品类型不匹配
Drools says order and product types are a mismatch
我有一个订单可以分别定义在 2 个产品类别中。订单的类别可能属于第一个产品类别或另一个产品子类别。无论哪种方式,两种产品都完整地描述了订单。订单是一种农产品,也是一种水果。订单属于这些情况,因为这是遗留应用程序。但是,当我编写 drl 文件时,它失败并显示类型不匹配的错误,这两个都是字符串字段。问题是产品是脱节的,因此很难匹配它们并触发规则。我希望两种产品都满足条件。如果我尝试使用一种产品进行匹配,但它会选择列表中我不想要的其他几种产品。订单必须符合 2 个条件,即使它们是不同的事实。
这是我的 drl 文件:
rule "check Order in Produce and type is fruit"
when
$order : Order( $orderId: orderId , $category: category )
$prod2 : Product( this.type == 'FRUIT', this.orderId == $orderId,
$name1: name)
$prod3 : Product( this.type == "PRODUCE", this.name != $name1,
this.category == $category)
then
System.out.println("Found a binding type "+$order) ;
end
我的 class 文件是这样的,我放了一个产品的值,省略了另一个。我放置第一个产品的实际值。
class Product{
String name;
String type= "FRUIT";
String orderId = "123";
String category = "PRODUCE";
}
顺序class如下图:
class Order{
String orderId;
String category;
}
如果有人能提供帮助,我将不胜感激
对象没有包含导入;一旦我放置它,它就起作用了
我有一个订单可以分别定义在 2 个产品类别中。订单的类别可能属于第一个产品类别或另一个产品子类别。无论哪种方式,两种产品都完整地描述了订单。订单是一种农产品,也是一种水果。订单属于这些情况,因为这是遗留应用程序。但是,当我编写 drl 文件时,它失败并显示类型不匹配的错误,这两个都是字符串字段。问题是产品是脱节的,因此很难匹配它们并触发规则。我希望两种产品都满足条件。如果我尝试使用一种产品进行匹配,但它会选择列表中我不想要的其他几种产品。订单必须符合 2 个条件,即使它们是不同的事实。
这是我的 drl 文件:
rule "check Order in Produce and type is fruit"
when
$order : Order( $orderId: orderId , $category: category )
$prod2 : Product( this.type == 'FRUIT', this.orderId == $orderId,
$name1: name)
$prod3 : Product( this.type == "PRODUCE", this.name != $name1,
this.category == $category)
then
System.out.println("Found a binding type "+$order) ;
end
我的 class 文件是这样的,我放了一个产品的值,省略了另一个。我放置第一个产品的实际值。
class Product{
String name;
String type= "FRUIT";
String orderId = "123";
String category = "PRODUCE";
}
顺序class如下图:
class Order{
String orderId;
String category;
}
如果有人能提供帮助,我将不胜感激
对象没有包含导入;一旦我放置它,它就起作用了