在Java中筛选除SubscriptionAdmin之外的用户

在Java中筛选除SubscriptionAdmin之外的用户,java,rally,Java,Rally,我试图为所有用户应用某些业务规则,Java中的订阅管理员除外。当我如下设置过滤器时 setQueryFilter(新的QueryFilter(“SubscriptionAdmin”,“=”,“false”) 我犯了这样的错误 无法分析:查询表达式中不允许用户类型上的属性“SubscriptionAdmin” 我如何做到这一点?非常感谢您的帮助。根据,用户对象上的SubscriptionAdmin字段不能用于查询。您可以迭代用户并使用带有条件的if语句: if (userQueryObject.g

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

setQueryFilter(新的QueryFilter(“SubscriptionAdmin”,“=”,“false”)

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

我如何做到这一点?非常感谢您的帮助。

根据,用户对象上的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"));
        }

谢谢。谢谢