У меня есть следующие фактыСортировки по значению атрибута в Drools
declare PriceInfo
price : Integer
end
Я использую это правило для вставки:
правила «включить» повестку-группы «найти повернутый дом» когда
then
PriceInfo p1 = new PriceInfo();
PriceInfo p2 = new PriceInfo();
PriceInfo p3 = new PriceInfo();
PriceInfo p4 = new PriceInfo();
PriceInfo p5 = new PriceInfo();
p1.setPrice(200);
p2.setPrice(300);
p3.setPrice(400);
p4.setPrice(500);
p5.setPrice(600);
insert(p1);
insert(p2);
insert(p3);
insert(p4);
insert(p5);
end
Введено 5 фактов PriceInfo в правила двигателя. Я пытаюсь сортировать его в порядке возрастания или убывания от этого правила.
rule "sort-number"
agenda-group "find-rotated-house"
when
$priceInfo : PriceInfo($price : price)
not PriceInfo(price < $price)
then
$logger.info($priceInfo.toString());
retract($priceInfo);
end
Однако в этом правиле я втягиваю этот факт. Если я не откажусь, я получаю минимальное значение, т. Е. 200. Другие факты не активируются. Я хочу сохранить этот факт в RE после сортировки.
Это правило также работает, но с ретрактом.
rule "sort-number-1"
agenda-group "find-rotated-house"
when
Number($intValue : intValue) from accumulate(PriceInfo($price : price), min($price))
$p : PriceInfo(price == $intValue)
then
$logger.info($p.toString());
retract($p);
end
Просьба помочь.
Благодаря
Спасибо, laune за ваш ответ. – Kumar