Таблица решений drools - один столбец - два поля

Предположим, у нас есть некоторый класс, который связан с одним или несколькими кодами: основным и дополнительным. Каждый объект этого класса имеет как минимум основной код и может иметь неограниченное количество вторичных кодов:

class Something {

  private String mainCode;
  private List<String> secondaryCodes;
}

Я хочу создать правило в таблице решений Drools, которое позволяет мне проверять, равно ли значение, указанное в столбце, mainCode или содержится в вторичном коде. Поэтому мне нужен один столбец для двух правил, связанных с двумя разными полями.

Это вообще возможно?


person Patryk Dobrowolski    schedule 17.12.2013    source источник


Ответы (2)


Ограничение можно записать в виде составного логического выражения:

mainCode == $param || secondaryCodes contains $param

Нет ограничений на поля, на которые вы ссылаетесь в таком выражении.

person laune    schedule 17.12.2013
comment
Спасибо за ваш ответ, но я до сих пор не знаю, как это сделать в Guvnor. Может быть, я не ясно выразился по этому поводу. - person Patryk Dobrowolski; 17.12.2013
comment
Я пробовал здесь много вещей, и мне всегда нужно заполнить две колонки. - person Patryk Dobrowolski; 17.12.2013

Вы можете сделать это в Guvnor, используя @{param} во фрагменте Condition BRL, например:

  $s : Something (maincode == "@{codes}" || secondaryCodes contains "@{codes}"

Это дает вам один столбец. -J

person eze    schedule 07.01.2014