Найти дубликаты в столбцах в DROOL - PullRequest
0 голосов
/ 30 августа 2018

Мое требование - выяснить, является ли комбинация значений столбца A + столбца B уникальной в данной таблице. Я пишу правило, как показано ниже. Где AccountPendingView - это имя таблицы. csUniqueId и dpAccountIdentifier являются столбцами, а «fromrequestResponseView.accountPendingList» содержит все строки таблицы AccountPendingVIew.

Приведенная ниже логика проверяет, присутствуют ли комбинации csUniqueId и dpAccountIdentifier хотя бы один раз. Но я хочу проверить, повторяется ли комбинация csUniqueId и dpAccountIdentifier более одного раза.

when
    requestResponseView : RequestResponseView() 
    listOfComboUniqueIdAccId: List( size > 0 ) from accumulate 
    ( AccountPendingView( comboId : csUniqueId.concat(dpAccountIdentifier) ) 
    from requestResponseView.accountPendingList; collectList(comboId ) )
    accountPending : AccountPendingView( 
    eval(listOfComboUniqueIdAccId.contains(csUniqueId+dpAccountIdentifier))) 
    from requestResponseView.accountPendingList
then
        System.out.println(listOfComboUniqueIdAccId.size());
        requestResponseView.addToFailedList( accountPending );
...