0

Java のサブスクリプション管理者を除くすべてのユーザーに特定のビジネス ルールを適用しようとしています。以下のようにフィルターを設定すると、

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

次のようなエラーが表示されます 解析できませんでした: タイプ ユーザーの属性 "SubscriptionAdmin" は、クエリ式では許可されていません。

どうすればこれを達成できますか? どんな助けでも大歓迎です。

4

1 に答える 1

1

WS API ドキュメントによると、User オブジェクトの 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 に答える