2013-09-23 3 views
0

Я пытаюсь применить определенные бизнес-правила для всех пользователей, кроме Администраторов подписки в Java. Когда я устанавливаю фильтр, как показано ниже,Фильтровать пользователей, за исключением SubscriptionAdmin в Java

user.setQueryFilter (новый QueryFilter («SubscriptionAdmin», «=», «false»));

У меня такая ошибка Не удалось разобрать: Атрибут «SubscriptionAdmin» по типу Пользователь не допускается в выражениях запроса.

Как достичь этого? Любая помощь приветствуется.

ответ

1

Per WS API documentation, SubscriptionAdmin поле объекта пользователя не может использоваться в запросах. Вы можете перебрать пользователей и использовать if заявление с условием:

if (userQueryObject.get("SubscriptionAdmin").getAsBoolean() == false){ 
       //your code here; 
      } 

SubscriptionAdmin поле должно быть включено в выборку. Вот фрагмент кода, где оценивается условие:

QueryRequest userRequest = new QueryRequest("User"); 
     userRequest.setFetch(new Fetch("UserName", "Subscription", "DisplayName", "SubscriptionAdmin")); 
     userRequest.setQueryFilter(new QueryFilter("UserName", "=", "[email protected]")); 
     QueryResponse userQueryResponse = restApi.query(userRequest); 
     JsonArray userQueryResults = userQueryResponse.getResults(); 
     JsonElement userQueryElement = userQueryResults.get(0); 
     JsonObject userQueryObject = userQueryElement.getAsJsonObject(); 
     String userRef = userQueryObject.get("_ref").getAsString(); 
     System.out.println(userRef); 
     if (userQueryObject.get("SubscriptionAdmin").getAsBoolean() == false){ 
      System.out.println(userQueryObject.get("SubscriptionAdmin")); 
     } 
+0

Цените его. Благодарю. – user2702052

+0

Добро пожаловать. – nickm

Смежные вопросы