如何防止将重复规则添加到知识库

How to prevent duplicate rules being added to the KnowledgeBase

我只有一个知识库,有些用户会创建规则并在一段时间内提交。 第一天: 规则名称:'Test1' 规则名称:'Test2'

我已经创建了 knowledgePackage 并将该包添加到 konwledgebase。

现在,当用户第二天来提交另一组规则时。 规则名称:'Test1' 规则名称:'Test3'

我正在创建另一个 knowledgePackage,当将该包添加到同一个 knowledgeBase 时,它​​被成功添加。我期望抛出一个错误,表明该规则已经存在。

如何确定规则是否已经存在。

还有其他人希望能够通过定义和添加具有相同名称的不同规则来替换规则。所以,你不可能取悦所有人。

检查,访问KieBase获取所有规则名称的列表:

List<String> ruleNames = new ArrayList<String>();
KieBase kBase = ...;
Collection<KiePackage> packages = kBase.getKiePackages();
for( KiePackage kPackage: packages ){
    for( Rule rule: kPackage.getRules() ){
        ruleNames.add( rule.getName() );
    }
}