0

我正在尝试为所有用户应用某些业务规则,Java 中的订阅管理员除外。当我将过滤器设置如下时,

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

我收到这样的错误无法解析:查询表达式中不允许用户类型上的属性“SubscriptionAdmin”。

我如何实现这一目标?任何帮助表示赞赏。

4

1 回答 1

1

根据WS API 文档,用户对象上的 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", "=", "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"));
        }
于 2013-09-23T16:51:40.907 回答