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

时间:2015-04-03 19:39:41

标签: drools

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

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

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

我正在创建另一个knowledgePackage,当将包添加到同一个知识库时,它会成功添加。我期待一个错误,即规则已经存在。

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

1 个答案:

答案 0 :(得分:1)

还有其他人希望能够通过定义和添加具有相同名称的其他规则来替换规则。因此,你不能让所有人满意。

要检查,请访问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() );
    }
}