У меня есть POJO, который я хочу проверить, существует ли он в списке POJO.Я могу сделать это, используя следующее правило:
when
$pojo:Pojo() and
$pojoLs:PojoLS() and
$test:PojoLS() from collect (Pojo(this.equals($pojo)) from $pojoLs)
then
System.out.println($test.size());
Это правило соответствует, но теперь я хочу обернуть POJO и список POJO в контейнеры, которые имеют ключ (строку) и значение (POJO или список POJO).Я назову классы-оболочки PojoWR и PojoLSWR.Ниже приведено то же правило, что и выше, но с использованием оболочек:
when
$pojo:PojoWR("pojo.key";) and
$pojoLs:PojoLSWR("pojols.key";) and
$test:PojoLS() from collect (Pojo(this.equals($pojo.value)) from $pojoLs.value)
then
System.out.println($test.size());
Единственное отличие состоит в том, что я сопоставляю свой POJO и список POJO, используя ключ в оболочке, и получаю доступ к моим значениям из оболочек, используя.value, в противном случае логика та же, что я вижу.Однако список не заполняется в правиле с использованием оболочек (тогда блок блок печатает 0 для $ test.size (), когда он должен вывести 1, как это делается в правиле без оболочек).