Фильтровать пользователей кроме SubscriptionAdmin в Java

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

user.setQueryFilter (new QueryFilter ("SubscriptionAdmin", "=", "false"));

Я получаю ошибку, подобную этой. Не удалось выполнить синтаксический анализ: атрибут "SubscriptionAdmin" для типа "Пользователь" не разрешен в выражениях запросов.

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

1 ответ

Согласно документации WS API, поле SubscriptionAdmin объекта User нельзя использовать в запросах. Вы можете перебирать пользователей и использовать 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", "=", "someuser@co.com"));
        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"));
        }
Другие вопросы по тегам