0

使用 CMIS,我可以向对象添加属性。属性可以有一个值,也可以是多值属性。当您在多个对象上具有多值属性时,如何搜索具有该属性并且该属性包含特定值或多个特定值的所有对象?

例如。(示例取自这里

CmisObject cmisobject = ....

Map<String, Object> updateProperties = new HashMap<String, Object>();

List<String> shoppingList = new ArrayList<String>();
shoppingList.add("milk");
shoppingList.add("bread");
shoppingList.add("cheese");
updateProperties.put("my:shopping.list", shoppingList); // multi-value property

cmisobject.updateProperties(updateProperties);

现在,如果我希望对具有属性my:shopping.list并且该属性包含值bread或值milk AND cheese的所有对象执行查询,我该怎么做?

4

1 回答 1

0

尝试这个:

boolean isPropertyPresent(Map<String, Object> updateProperties) {//should use List<String> instead of Object
    List<String> shoppingList = (List<String>) updateProperties.get("my:shopping.list");
    if (shoppingList != null) {
         return shoppingList.contains("bread") || (shoppingList.contains("milk") && shoppingList.contains("cheese"));
    }
    return false;
}
于 2014-11-02T15:07:22.953 回答