2016-06-08 46 views

回答

1

可以使用OIM搜索條件如下:

UserManager usrMgr = oimClient.getService(UserManager.class); 
    List<String> listOfStatus = new ArrayList<String>(); 
    listOfStatus.add("Disabled"); 
    listOfStatus.add("Deleted"); 
    SearchCriteria statusSearchCriteria = new SearchCriteria(UserManagerConstants.AttributeName.STATUS.getId(), listOfStatus, SearchCriteria.Operator.NOT_IN); 
    try { 
     List<User> retList = usrMgr.search(statusSearchCriteria, null, null); 
     System.out.println(retList.toString()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
+1

我相信這個答案是不正確,爲的UserManager的搜索方法的文檔指出「支持的SearchCriteria符爲AND,OR,NOT,GREATER_THAN,greater_equal,這些LESS_THAN,LESS_EQUAL,平等,NOT_EQUAL。有關更多比較像包含SearchCriteria運算符將EQUAL與要搜索的值將是'* *'「其他答案似乎是正確的解決方案 –

2

另一種方式做,這是做兩個不同的搜索條件,然後在一個將它們組合起來。

UserManager userManager = Platform.getService(UserManager.class); 
SearchCriteria criteria1 = new SearchCriteria(UserManagerConstants.AttributeName.STATUS.getId(), UserManagerConstants.AttributeValues.USER_STATUS_DELETED.getId(), SearchCriteria.Operator.NOT_EQUAL); 
SearchCriteria criteria2 = new SearchCriteria(UserManagerConstants.AttributeName.STATUS.getId(), UserManagerConstants.AttributeValues.USER_STATUS_DISABLED.getId(), SearchCriteria.Operator.NOT_EQUAL); 
SearchCriteria combined = new SearchCriteria(criteria1, criteria2, SearchCriteria.Operator.AND); 


HashMap<String,Object> configParams = new HashMap<String,Object>(); 
configParams.put("ENDROW", -1); 


List<User> results = userManager.search(combined, null, configParams);