2017-09-28 8 views
0

Drools가 고유 값을 확인하는 규칙을 작성하는 데 조언이 필요합니다.Drools - wm에 여러 속성이있는 이벤트가 있는지 확인하십시오.

public class Event { 
    int propertyA; 
    String propertyB; 
} 

와 나는 그들의 propertyA 값이 동일하도록 Event s는 작업 메모리에서이 있는지 확인하고 싶습니다,하지만 그들은 4+ 별개의 propertyB 값이 :

I는 다음과 같은 이벤트가 .

예를 들어 :보다 더 많거나 동등한와 티셔츠를 입고 사용자가 있다면 (> =) : Event 사용자했을 것이다, 그리고 propertyA는 ID와 propertyB t- 셔츠 색상했을 경우에, 나는 묻는 것 4 가지 색상.

이 규칙을 어떻게 구현할 수 있습니까? 감사!

답변

1

특정 A를 하나 개의 이벤트를 찾은 다음이 A.

$e: Event($a: propertyA) // $e ist the last of a group of As 
not Event(this after $e, propertyA == $a) 
accumulate(Event(propertyA == $a, $b: propertyB); 
      $set: collectSet($b); 
      $set.size() >= 4) 
+0

아,'collectSet' 모든 이벤트에서 조식 세트를 수집! –