比较两个列表后如何制作列表

how to make a list after comparing two Lists

我正在尝试使用以下代码在 drools 中收集一些对象:

rule "Evalua Anexo 10" salience 300 when
  jul: ArchJuliano()
  reg551: Registro551( fraccAne10 : getFraccion() ) from jul.getListReg551() 
    exists ( Anexo10( getFraccion() == fraccAne10 ) from jul.getListFraccAne10() )
then
  // get pojo reg551   
end

当 fraccAne10 存在于 jul.getListFraccAne10 中时,上述规则将为每个 Registro551 触发一次。但是,我想获取 Registro551 的列表而不是对象。

rule "Evalua Anexo 10" salience 300 when
  jul: ArchJuliano()
  listOfReg551: List() from collect (
   Registro551( fraccAne10 : getFraccion() ) from jul.getListReg551() 
   exists ( Anexo10( getFraccion() == fraccAne10 ) from jul.getListFraccAne10() )
  )
then
  // trying to get List<Registro551>
  // fires error: mismatched input 'exists' in rule name-of-rule
end

事实:

public class Anexo10 {
  private String fraccion;
  // getters and setters

public class Registro551 {
  private String fraccion;
  // getters and setters

public class ArchJuliano {
  private List<Anexo10> listFraccAne10;
  private List<Registro551> listReg551;
  // getters and setters

非常感谢。

rule "Evalua Anexo 10"
when
  jul: ArchJuliano( $lAne: listFraccAne10, $lReg: listReg551 )
  accumulate( Anexo10( $fA: fraccion ) from $lAne;
              $fraccionsA: collectSet($fA) )
  accumulate( Registro551( $fR: fraccion memberOf $fraccionsA ) from $lReg;
              $fraccionsR: collectList($fR) )
then
  ...List<Registro551> $fraccionsR...
end

(我还没有测试过。)