我意識到標題很瘋狂,但它確實是我能想到的最好的。如果有人有更好的建議,請留下評論,我會編輯。Drools約束對象不存在,其成員字段包含P以外的值
這個問題是一個後續的問題在這裏問:Drools Constraint object other than P is found in collection
對於那些不想單擊誰,該職位描述的解決方案,在其中你想知道這種情況是否存在的事實CustomType,其具有包含其他的值大於P. 解這個問題最終是以下一個成員字段:
$c: CustomType()
exists Object(this != objectP) from $c.collection
上面的代碼工作很大。我的問題是,我想知道何時不存在具有此屬性的CustomType類型的對象。現在,因爲第2行依賴於第1行給出的綁定變量,所以我們不能簡單地用非操作符否定第1行。這樣做會引發運行時異常。以下是如何我直覺想編寫的代碼,但請記住,這是行不通的:
not $c: CustomType()
exists Object(this != objectP) from $c.collection
我不能簡單地否定線2條,因爲那麼該規則將需要至少一個對象的存在CustomType。我想知道第一個代碼示例何時不是這種情況。
我的內心流氓告訴我原來的解決方案可能有缺陷。理想情況下,我們希望在CustomType的括號()內表示第2行。這將表達更多的沿着「有一個CustomType屬性」的行,而不是「有一個CustomType,並有一個對象的屬性」。前者我們可以否定一個不是運營商,但我不知道如何處理後者。